diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h new file mode 100644 index 0000000000..c03c9aab7f --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h @@ -0,0 +1,1337 @@ +// +// was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_subaru_config.sh integration/rusefi_config.txt +// + +#define adc_channel_e_auto_enum 0="EFI_ADC_NONE",23="EFI_ADC3_14",24="EFI_ADC3_15",17="EFI_ADC3_4",18="EFI_ADC3_5",19="EFI_ADC3_6",20="EFI_ADC3_7",21="EFI_ADC3_8",22="EFI_ADC3_9",1="EFI_ADC_0",2="EFI_ADC_1",11="EFI_ADC_10",12="EFI_ADC_11",13="EFI_ADC_12",14="EFI_ADC_13",15="EFI_ADC_14",16="EFI_ADC_15",3="EFI_ADC_2",4="EFI_ADC_3",5="EFI_ADC_4",6="EFI_ADC_5",7="EFI_ADC_6",8="EFI_ADC_7",9="EFI_ADC_8",10="EFI_ADC_9",50="EFI_ADC_ERROR",25="EFI_ADC_LAST_CHANNEL" +#define adc_channel_e_EFI_ADC3_14 23 +#define adc_channel_e_EFI_ADC3_15 24 +#define adc_channel_e_EFI_ADC3_4 17 +#define adc_channel_e_EFI_ADC3_5 18 +#define adc_channel_e_EFI_ADC3_6 19 +#define adc_channel_e_EFI_ADC3_7 20 +#define adc_channel_e_EFI_ADC3_8 21 +#define adc_channel_e_EFI_ADC3_9 22 +#define adc_channel_e_EFI_ADC_0 1 +#define adc_channel_e_EFI_ADC_1 2 +#define adc_channel_e_EFI_ADC_10 11 +#define adc_channel_e_EFI_ADC_11 12 +#define adc_channel_e_EFI_ADC_12 13 +#define adc_channel_e_EFI_ADC_13 14 +#define adc_channel_e_EFI_ADC_14 15 +#define adc_channel_e_EFI_ADC_15 16 +#define adc_channel_e_EFI_ADC_2 3 +#define adc_channel_e_EFI_ADC_3 4 +#define adc_channel_e_EFI_ADC_4 5 +#define adc_channel_e_EFI_ADC_5 6 +#define adc_channel_e_EFI_ADC_6 7 +#define adc_channel_e_EFI_ADC_7 8 +#define adc_channel_e_EFI_ADC_8 9 +#define adc_channel_e_EFI_ADC_9 10 +#define adc_channel_e_EFI_ADC_ERROR 50 +#define adc_channel_e_EFI_ADC_LAST_CHANNEL 25 +#define adc_channel_e_EFI_ADC_NONE 0 +#define adc_channel_e_enum 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +#define adc_channel_e_fullenum "NONE","AUX0_18 - MAP Ain","INVALID","INVALID","B05 - MAF Ain","INVALID","AUX0_19 - IAT Ain","A02 - VBat","INVALID","A06 - Oxyg 2 Ain","A04 - EGR t Ain","INVALID","A18 - AUX0 Ain","B02 - TPS Ain","INVALID","A03 - Coolant t Ain","A06 - Oxyg 1 Ain" +#define ADC_CHANNEL_NONE 0 +#define afr_sensor_s_size 20 +#define AFTERSTART_DECAY_CURVE_SIZE 8 +#define AFTERSTART_ENRICH_CURVE_SIZE 8 +#define AFTERSTART_HOLD_CURVE_SIZE 8 +#define air_pressure_sensor_config_s_size 12 +#define air_pressure_sensor_type_e_auto_enum 0="MT_CUSTOM",10="MT_BOSCH_2_5",1="MT_DENSO183",4="MT_DODGE_NEON_2003",13="MT_GM_1_BAR",12="MT_GM_2_BAR",6="MT_GM_3_BAR",3="MT_HONDA3BAR",11="MT_MAZDA_1_BAR",7="MT_MPX4100",2="MT_MPX4250",9="MT_MPX4250A",14="MT_MPXH6400",5="MT_SUBY_DENSO",8="MT_TOYOTA_89420_02010" +#define air_pressure_sensor_type_e_MT_BOSCH_2_5 10 +#define air_pressure_sensor_type_e_MT_CUSTOM 0 +#define air_pressure_sensor_type_e_MT_DENSO183 1 +#define air_pressure_sensor_type_e_MT_DODGE_NEON_2003 4 +#define air_pressure_sensor_type_e_MT_GM_1_BAR 13 +#define air_pressure_sensor_type_e_MT_GM_2_BAR 12 +#define air_pressure_sensor_type_e_MT_GM_3_BAR 6 +#define air_pressure_sensor_type_e_MT_HONDA3BAR 3 +#define air_pressure_sensor_type_e_MT_MAZDA_1_BAR 11 +#define air_pressure_sensor_type_e_MT_MPX4100 7 +#define air_pressure_sensor_type_e_MT_MPX4250 2 +#define air_pressure_sensor_type_e_MT_MPX4250A 9 +#define air_pressure_sensor_type_e_MT_MPXH6400 14 +#define air_pressure_sensor_type_e_MT_SUBY_DENSO 5 +#define air_pressure_sensor_type_e_MT_TOYOTA_89420_02010 8 +#define antiLagActivationMode_e_ALWAYS_ON_ANTILAG 1 +#define antiLagActivationMode_e_auto_enum 0="SWITCH_INPUT_ANTILAG",1="ALWAYS_ON_ANTILAG" +#define antiLagActivationMode_e_enum "Switch Input", "Always Active" +#define antiLagActivationMode_e_SWITCH_INPUT_ANTILAG 0 +#define AUX_DIGITAL_VALVE_COUNT 2 +#define BANKS_COUNT 2 +#define BARO_CORR_SIZE 4 +#define bench_mode_e_BENCH_AC_COMPRESSOR_RELAY 6 +#define bench_mode_e_BENCH_CHECK_ENGINE_LIGHT 7 +#define bench_mode_e_BENCH_FAN_RELAY 4 +#define bench_mode_e_BENCH_FAN_RELAY_2 5 +#define bench_mode_e_BENCH_FUEL_PUMP 1 +#define bench_mode_e_BENCH_GPPWM1_VALVE 10 +#define bench_mode_e_BENCH_GPPWM2_VALVE 11 +#define bench_mode_e_BENCH_GPPWM3_VALVE 12 +#define bench_mode_e_BENCH_GPPWM4_VALVE 13 +#define bench_mode_e_BENCH_HPFP_VALVE 9 +#define bench_mode_e_BENCH_IDLE_VALVE 8 +#define bench_mode_e_BENCH_MAIN_RELAY 0 +#define bench_mode_e_BENCH_SECOND_IDLE_VALVE 14 +#define bench_mode_e_BENCH_STARTER_DISABLE_RELAY 3 +#define bench_mode_e_BENCH_STARTER_ENABLE_RELAY 2 +#define blend_table_s_size 188 +#define BLOCKING_FACTOR 750 +#define BOOST_LOAD_COUNT 8 +#define BOOST_RPM_COUNT 8 +#define boostType_e_auto_enum 0="OPEN_LOOP",1="CLOSED_LOOP" +#define boostType_e_CLOSED_LOOP 1 +#define boostType_e_OPEN_LOOP 0 +#define brain_input_pin_e_enum 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +#define brain_input_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank 2 VR+","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank 1 VR+","INVALID","A07 - Cam VR+" +#define brain_pin_diag_e_PIN_DRIVER_OFF 0x20 +#define brain_pin_diag_e_PIN_DRIVER_OVERTEMP 0x10 +#define brain_pin_diag_e_PIN_INVALID 0x80 +#define brain_pin_diag_e_PIN_OK 0 +#define brain_pin_diag_e_PIN_OPEN 0x01 +#define brain_pin_diag_e_PIN_OVERLOAD 0x08 +#define brain_pin_diag_e_PIN_SHORT_TO_BAT 0x04 +#define brain_pin_diag_e_PIN_SHORT_TO_GND 0x02 +#define CAM_INPUTS_COUNT 4 +#define CAMS_PER_BANK 2 +#define can_baudrate_e_auto_enum 0="B50KBPS",2="B100KBPS",3="B125KBPS",6="B1MBPS",4="B250KBPS",5="B500KBPS",1="B83KBPS" +#define can_baudrate_e_B100KBPS 2 +#define can_baudrate_e_B125KBPS 3 +#define can_baudrate_e_B1MBPS 6 +#define can_baudrate_e_B250KBPS 4 +#define can_baudrate_e_B500KBPS 5 +#define can_baudrate_e_B50KBPS 0 +#define can_baudrate_e_B83KBPS 1 +#define can_baudrate_e_enum "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +#define CAN_DEFAULT_BASE 0x200 +#define CAN_ECU_HW_META 0xAB1234 +#define CAN_ECU_SERIAL_RX_ID 0x100 +#define CAN_ECU_SERIAL_TX_ID 0x102 +#define can_nbc_e_auto_enum 0="CAN_BUS_NBC_NONE",12="CAN_AIM_DASH",6="CAN_BUS_BMW_E90",10="CAN_BUS_GENESIS_COUPE",11="CAN_BUS_HONDA_K",7="CAN_BUS_Haltech",3="CAN_BUS_MAZDA_RX8",8="CAN_BUS_MQB",4="CAN_BUS_NBC_BMW",1="CAN_BUS_NBC_FIAT",2="CAN_BUS_NBC_VAG",9="CAN_BUS_NISSAN_VQ",5="CAN_BUS_W202_C180" +#define can_nbc_e_CAN_AIM_DASH 12 +#define can_nbc_e_CAN_BUS_BMW_E90 6 +#define can_nbc_e_CAN_BUS_GENESIS_COUPE 10 +#define can_nbc_e_CAN_BUS_Haltech 7 +#define can_nbc_e_CAN_BUS_HONDA_K 11 +#define can_nbc_e_CAN_BUS_MAZDA_RX8 3 +#define can_nbc_e_CAN_BUS_MQB 8 +#define can_nbc_e_CAN_BUS_NBC_BMW 4 +#define can_nbc_e_CAN_BUS_NBC_FIAT 1 +#define can_nbc_e_CAN_BUS_NBC_NONE 0 +#define can_nbc_e_CAN_BUS_NBC_VAG 2 +#define can_nbc_e_CAN_BUS_NISSAN_VQ 9 +#define can_nbc_e_CAN_BUS_W202_C180 5 +#define CAN_RX_PREFIX "CAN_rx" +#define can_vss_nbc_e_auto_enum 0="BMW_e46",1="W202" +#define can_vss_nbc_e_BMW_e46 0 +#define can_vss_nbc_e_W202 1 +#define CLT_CRANKING_CURVE_SIZE 8 +#define CLT_CURVE_SIZE 16 +#define CLT_LIMITER_CURVE_SIZE 4 +#define CLT_TIMING_CURVE_SIZE 8 +#define CMD_AC_RELAY_BENCH "acrelaybench" +#define CMD_ALTERNATOR_PIN "set_alternator_pin" +#define CMD_BOOST_PIN "set_boost_pin" +#define CMD_BURNCONFIG "burnconfig" +#define CMD_DATE "date" +#define CMD_DISABLE "disable" +#define CMD_ECU_UNLOCK "unlock" +#define CMD_ENABLE "enable" +#define CMD_ENGINE_TYPE "engine_type" +#define CMD_ENGINESNIFFERRPMTHRESHOLD "engineSnifferRpmThreshold" +#define CMD_ETB_DUTY "set_etb_duty" +#define CMD_EXTERNAL_STIMULATION "ext_stimulation" +#define CMD_FAN2_BENCH "fan2bench" +#define CMD_FAN_BENCH "fanbench" +#define CMD_FUEL_BENCH "fuelbench" +#define CMD_FUEL_PUMP_BENCH "fuelpumpbench" +#define CMD_FUNCTIONAL_TEST_MODE "test_mode" +#define CMD_GET "get" +#define CMD_HPFP_BENCH "hpfpbench" +#define CMD_IDLE_BENCH "idlebench" +#define CMD_IDLE_PIN "set_idle_pin" +#define CMD_IGNITION "ignition" +#define CMD_IGNITION_PIN "set_ignition_pin" +#define CMD_INJECTION "injection" +#define CMD_INJECTION_PIN "set_injection_pin" +#define CMD_LOGIC_PIN "set_logic_input_pin" +#define CMD_MIL_BENCH "milbench" +#define CMD_PINS "pins" +#define CMD_PWM "pwm" +#define CMD_REBOOT "reboot" +#define CMD_REBOOT_DFU "reboot_dfu" +#define CMD_REBOOT_OPENBLT "reboot_openblt" +#define CMD_RESET_ENGINE_SNIFFER "reset_engine_chart" +#define CMD_RPM "rpm" +#define CMD_SELF_STIMULATION "self_stimulation" +#define CMD_SET "set" +#define CMD_SPARK_BENCH "sparkbench" +#define CMD_STARTER_BENCH "starterbench" +#define CMD_TRIGGER_HW_INPUT "trigger_hw_input" +#define CMD_TRIGGER_PIN "set_trigger_input_pin" +#define CMD_TRIGGER_SIMULATOR_PIN "set_trigger_simulator_pin" +#define CMD_TRIGGERINFO "triggerinfo" +#define CMD_VSS_PIN "vss_pin" +#define CMD_WRITECONFIG "writeconfig" +#define COMPOSITE_PACKET_SIZE 5 +#define CONSOLE_DATA_PROTOCOL_TAG " @" +#define CRANKING_ADVANCE_CURVE_SIZE 4 +#define CRANKING_CLT_IDLE_CURVE_SIZE 8 +#define CRANKING_CURVE_SIZE 8 +#define cranking_parameters_s_size 8 +#define CRITICAL_PREFIX "CRITICAL" +#define cyl_trim_s_size 16 +#define dc_function_e_auto_enum 0="DC_None",1="DC_Throttle1",2="DC_Throttle2",3="DC_Wastegate" +#define dc_function_e_DC_None 0 +#define dc_function_e_DC_Throttle1 1 +#define dc_function_e_DC_Throttle2 2 +#define dc_function_e_DC_Wastegate 3 +#define dc_io_size 8 +#define DC_PER_STEPPER 2 +#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",16="DBG_16",2="DBG_2",20="DBG_20",24="DBG_24",25="DBG_25",26="DBG_26",29="DBG_29",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",7="DBG_7",8="DBG_8",9="DBG_9",21="DBG_ANALOG_INPUTS",32="DBG_ANALOG_INPUTS2",19="DBG_BENCH_TEST",40="DBG_COMPOSITE_LOG",33="DBG_DWELL_METRIC",44="DBG_DYNO_VIEW",17="DBG_ELECTRONIC_THROTTLE_PID",4="DBG_EL_ACCEL",39="DBG_ETB_AUTOTUNE",18="DBG_EXECUTOR",22="DBG_INSTANT_RPM",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",13="DBG_SD_CARD",6="DBG_SOFT_SPARK_CUT",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",5="DBG_TRIGGER_COUNTERS",12="DBG_UNUSED12",41="DBG_UNUSED41",42="DBG_UNUSED_42",23="UNUSED23" +#define debug_mode_e_DBG_0 0 +#define debug_mode_e_DBG_10 10 +#define debug_mode_e_DBG_11 11 +#define debug_mode_e_DBG_16 16 +#define debug_mode_e_DBG_2 2 +#define debug_mode_e_DBG_20 20 +#define debug_mode_e_DBG_24 24 +#define debug_mode_e_DBG_25 25 +#define debug_mode_e_DBG_26 26 +#define debug_mode_e_DBG_29 29 +#define debug_mode_e_DBG_34 34 +#define debug_mode_e_DBG_35 35 +#define debug_mode_e_DBG_36 36 +#define debug_mode_e_DBG_37 37 +#define debug_mode_e_DBG_38 38 +#define debug_mode_e_DBG_43 43 +#define debug_mode_e_DBG_46 46 +#define debug_mode_e_DBG_7 7 +#define debug_mode_e_DBG_8 8 +#define debug_mode_e_DBG_9 9 +#define debug_mode_e_DBG_ANALOG_INPUTS 21 +#define debug_mode_e_DBG_ANALOG_INPUTS2 32 +#define debug_mode_e_DBG_BENCH_TEST 19 +#define debug_mode_e_DBG_COMPOSITE_LOG 40 +#define debug_mode_e_DBG_DWELL_METRIC 33 +#define debug_mode_e_DBG_DYNO_VIEW 44 +#define debug_mode_e_DBG_EL_ACCEL 4 +#define debug_mode_e_DBG_ELECTRONIC_THROTTLE_PID 17 +#define debug_mode_e_DBG_ETB_AUTOTUNE 39 +#define debug_mode_e_DBG_EXECUTOR 18 +#define debug_mode_e_DBG_INSTANT_RPM 22 +#define debug_mode_e_DBG_ION 30 +#define debug_mode_e_DBG_KNOCK 15 +#define debug_mode_e_DBG_LOGIC_ANALYZER 45 +#define debug_mode_e_DBG_LUA 48 +#define debug_mode_e_DBG_MAP 27 +#define debug_mode_e_DBG_METRICS 28 +#define debug_mode_e_DBG_SD_CARD 13 +#define debug_mode_e_DBG_SOFT_SPARK_CUT 6 +#define debug_mode_e_DBG_SR5_PROTOCOL 14 +#define debug_mode_e_DBG_STEPPER_IDLE_CONTROL 3 +#define debug_mode_e_DBG_TCU 47 +#define debug_mode_e_DBG_TLE8888 31 +#define debug_mode_e_DBG_TPS_ACCEL 1 +#define debug_mode_e_DBG_TRIGGER_COUNTERS 5 +#define debug_mode_e_DBG_UNUSED12 12 +#define debug_mode_e_DBG_UNUSED41 41 +#define debug_mode_e_DBG_UNUSED_42 42 +#define debug_mode_e_enum "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" +#define debug_mode_e_UNUSED23 23 +#define DWELL_CURVE_SIZE 8 +#define ego_sensor_e_auto_enum 0="ES_BPSX_D1",2="ES_14Point7_Free",6="ES_AEM",5="ES_Custom",1="ES_Innovate_MTX_L",4="ES_PLX" +#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +#define ego_sensor_e_ES_14Point7_Free 2 +#define ego_sensor_e_ES_AEM 6 +#define ego_sensor_e_ES_BPSX_D1 0 +#define ego_sensor_e_ES_Custom 5 +#define ego_sensor_e_ES_Innovate_MTX_L 1 +#define ego_sensor_e_ES_PLX 4 +#define EGT_CHANNEL_COUNT 8 +#define engine_configuration_s_size 4004 +#define engine_load_mode_e_auto_enum 0="LM_SPEED_DENSITY",2="LM_ALPHA_N",3="LM_LUA",100="LM_MOCK",1="LM_REAL_MAF" +#define engine_load_mode_e_enum "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +#define engine_load_mode_e_LM_ALPHA_N 2 +#define engine_load_mode_e_LM_LUA 3 +#define engine_load_mode_e_LM_MOCK 100 +#define engine_load_mode_e_LM_REAL_MAF 1 +#define engine_load_mode_e_LM_SPEED_DENSITY 0 +#define ENGINE_MAKE_BMW "BMW" +#define ENGINE_MAKE_GM "GM" +#define ENGINE_MAKE_HONDA "Honda" +#define ENGINE_MAKE_Hyundai "Hyundai" +#define ENGINE_MAKE_LADA "Lada" +#define ENGINE_MAKE_MAZDA "Mazda" +#define ENGINE_MAKE_MERCEDES "Mercedes" +#define ENGINE_MAKE_NISSAN "Nissan" +#define ENGINE_MAKE_SUBARU "Subaru" +#define ENGINE_MAKE_TOYOTA "Toyota" +#define ENGINE_MAKE_VAG "VAG" +#define ENGINE_NOISE_CURVE_SIZE 16 +#define ENGINE_SNIFFER_UNIT_US 10 +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_BMW_M73_M 24 +#define engine_type_e_BMW_M73_MRE 50 +#define engine_type_e_BMW_M73_MRE_SLAVE 51 +#define engine_type_e_CAMARO_4 35 +#define engine_type_e_CITROEN_TU3JP 65 +#define engine_type_e_DEFAULT_FRANKENSO 0 +#define engine_type_e_DISCOVERY_PDM 38 +#define engine_type_e_DODGE_NEON_1995 2 +#define engine_type_e_DODGE_NEON_2003_CRANK 46 +#define engine_type_e_DODGE_RAM 64 +#define engine_type_e_EEPROM_BENCH_ENGINE 61 +#define engine_type_e_ET_UNUSED97 97 +#define engine_type_e_ET_UNUSED98 98 +#define engine_type_e_ET_UNUSED_17 17 +#define engine_type_e_ETB_BENCH_ENGINE 58 +#define engine_type_e_Force_4_bytes_size_engine_type 70000 +#define engine_type_e_FORD_ASPIRE_1996 3 +#define engine_type_e_FORD_ESCORT_GT 14 +#define engine_type_e_FORD_INLINE_6_1995 7 +#define engine_type_e_FRANKENSO_BMW_M73_F 40 +#define engine_type_e_FRANKENSO_MAZDA_MIATA_2003 47 +#define engine_type_e_FRANKENSO_MAZDA_MIATA_NA8 56 +#define engine_type_e_FRANKENSO_MIATA_NA6_MAP 41 +#define engine_type_e_FRANKENSO_MIATA_NA6_VAF 57 +#define engine_type_e_FRANKENSO_QA_ENGINE 49 +#define engine_type_e_GY6_139QMB 8 +#define engine_type_e_HELLEN72_ETB 33 +#define engine_type_e_HELLEN_121_NISSAN_4_CYL 84 +#define engine_type_e_HELLEN_121_NISSAN_6_CYL 72 +#define engine_type_e_HELLEN_121_NISSAN_8_CYL 85 +#define engine_type_e_HELLEN_121_NISSAN_ALMERA_N16 87 +#define engine_type_e_HELLEN_121_VAG_4_CYL 71 +#define engine_type_e_HELLEN_121_VAG_5_CYL 77 +#define engine_type_e_HELLEN_121_VAG_8_CYL 81 +#define engine_type_e_HELLEN_121_VAG_V6_CYL 78 +#define engine_type_e_HELLEN_121_VAG_VR6_CYL 79 +#define engine_type_e_HELLEN_128_MERCEDES_4_CYL 36 +#define engine_type_e_HELLEN_128_MERCEDES_6_CYL 88 +#define engine_type_e_HELLEN_128_MERCEDES_8_CYL 89 +#define engine_type_e_HELLEN_134_BMW 75 +#define engine_type_e_HELLEN_154_HYUNDAI_COUPE_BK1 82 +#define engine_type_e_HELLEN_154_HYUNDAI_COUPE_BK2 95 +#define engine_type_e_HELLEN_154_VAG 76 +#define engine_type_e_HELLEN_55_BMW 73 +#define engine_type_e_HELLEN_88_BMW 74 +#define engine_type_e_HELLEN_NA6 34 +#define engine_type_e_HELLEN_NA8_96 10 +#define engine_type_e_HELLEN_NA94 80 +#define engine_type_e_HELLEN_NB1 83 +#define engine_type_e_HELLEN_NB1_36 94 +#define engine_type_e_HELLEN_NB2 69 +#define engine_type_e_HELLEN_NB2_36 86 +#define engine_type_e_HONDA_600 43 +#define engine_type_e_L9779_BENCH_ENGINE 60 +#define engine_type_e_MAZDA_MIATA_2003_BOARD_TEST 55 +#define engine_type_e_MAZDA_MIATA_2003_NA_RAIL 54 +#define engine_type_e_MIATA_1996 21 +#define engine_type_e_MIATA_PROTEUS_TCU 1 +#define engine_type_e_MINIMAL_PINS 99 +#define engine_type_e_MITSU_4G93 16 +#define engine_type_e_MRE_BOARD_NEW_TEST 31 +#define engine_type_e_MRE_BODY_CONTROL 23 +#define engine_type_e_MRE_M111 68 +#define engine_type_e_MRE_MIATA_94_MAP 20 +#define engine_type_e_MRE_MIATA_NA6_MAP 66 +#define engine_type_e_MRE_MIATA_NA6_VAF 12 +#define engine_type_e_MRE_MIATA_NB2_ETB 13 +#define engine_type_e_MRE_MIATA_NB2_MAF 15 +#define engine_type_e_MRE_MIATA_NB2_MAP 11 +#define engine_type_e_MRE_SECONDARY_CAN 4 +#define engine_type_e_MRE_SUBARU_EJ18 37 +#define engine_type_e_MRE_VW_B6 62 +#define engine_type_e_NISSAN_PRIMERA 5 +#define engine_type_e_PROTEUS_ANALOG_PWM_TEST 30 +#define engine_type_e_PROTEUS_BMW_M73 63 +#define engine_type_e_PROTEUS_E65_6H_MAN_IN_THE_MIDDLE 9 +#define engine_type_e_PROTEUS_GM_LS_4 27 +#define engine_type_e_PROTEUS_HARLEY 6 +#define engine_type_e_PROTEUS_HONDA_K 90 +#define engine_type_e_PROTEUS_HONDA_OBD2A 91 +#define engine_type_e_PROTEUS_LUA_DEMO 25 +#define engine_type_e_PROTEUS_MIATA_NB2 67 +#define engine_type_e_PROTEUS_N73 93 +#define engine_type_e_PROTEUS_QC_TEST_BOARD 42 +#define engine_type_e_PROTEUS_VAG_80_18T 92 +#define engine_type_e_PROTEUS_VW_B6 39 +#define engine_type_e_SACHS 29 +#define engine_type_e_SUBARU_2003_WRX 22 +#define engine_type_e_SUBARUEG33_DEFAULTS 70 +#define engine_type_e_TEST_100 100 +#define engine_type_e_TEST_101 101 +#define engine_type_e_TEST_102 102 +#define engine_type_e_TEST_33816 18 +#define engine_type_e_TEST_CRANK_ENGINE 28 +#define engine_type_e_TEST_DC_WASTEGATE_DISCOVERY 48 +#define engine_type_e_TEST_ENGINE 26 +#define engine_type_e_TEST_ENGINE_VVT 45 +#define engine_type_e_TEST_ISSUE_366_BOTH 52 +#define engine_type_e_TEST_ISSUE_366_RISE 53 +#define engine_type_e_TEST_ROTARY 19 +#define engine_type_e_TLE8888_BENCH_ENGINE 59 +#define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 +#define engine_type_e_VW_ABA 32 +#define engine_type_e_WASTEGATE_PROTEUS_TEST 96 +#define engineSyncCam_enum "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" +#define ERROR_BUFFER_SIZE 120 +#define ETB_BIAS_CURVE_LENGTH 8 +#define ETB_COUNT 2 +#define ETB_HW_MAX_FREQUENCY 3000 +#define FLASH_DATA_VERSION 20000 +#define FUEL_LEVEL_TABLE_COUNT 8 +#define FUEL_LOAD_COUNT 16 +#define FUEL_RPM_COUNT 16 +#define GAP_TRACKING_LENGTH 18 +#define GAUGE_CATEGORY_BOOST_CONTROL "Boost Control" +#define GAUGE_CATEGORY_ETB "ETB more" +#define GAUGE_CATEGORY_FUEL_MATH "Fuel: math" +#define GAUGE_CATEGORY_TIMING "Timing" +#define GAUGE_COIL_DWELL_TIME "dwell: coil charge time" +#define GAUGE_NAME_ACCEL_ROLL "Acceleration: Roll" +#define GAUGE_NAME_ACCEL_X "Acceleration: X" +#define GAUGE_NAME_ACCEL_Y "Acceleration: Y" +#define GAUGE_NAME_ACCEL_YAW "Acceleration: Yaw" +#define GAUGE_NAME_ACCEL_Z "Acceleration: Z" +#define GAUGE_NAME_AFR "Air/Fuel Ratio" +#define GAUGE_NAME_AFR2 "Air/Fuel Ratio 2" +#define GAUGE_NAME_AIR_FLOW_ESTIMATE "MAF estimate" +#define GAUGE_NAME_AIR_FLOW_MEASURED "MAF" +#define GAUGE_NAME_AIR_FLOW_MEASURED_2 "MAF #2" +#define GAUGE_NAME_AIR_MASS "air mass" +#define GAUGE_NAME_AUX_LINEAR_1 "Aux Linear #1" +#define GAUGE_NAME_AUX_LINEAR_2 "Aux Linear #2" +#define GAUGE_NAME_AUX_TEMP1 "Aux temp 1" +#define GAUGE_NAME_AUX_TEMP2 "Aux temp 2" +#define GAUGE_NAME_BARO_PRESSURE "Barometric pressure" +#define GAUGE_NAME_BOOST_CLOSED_LOOP "Boost Closed Loop" +#define GAUGE_NAME_BOOST_OPEN_LOOP "Boost Open Loop" +#define GAUGE_NAME_BOOST_OUTPUT "Boost Output" +#define GAUGE_NAME_BOOST_TARGET "Boost Target" +#define GAUGE_NAME_CLT "CLT" +#define GAUGE_NAME_CPU_TEMP "CPU Temperature" +#define GAUGE_NAME_CURRENT_GEAR "Current Gear" +#define GAUGE_NAME_DEBUG_F1 "debug f1" +#define GAUGE_NAME_DEBUG_F2 "debug f2: iTerm" +#define GAUGE_NAME_DEBUG_F3 "debug f3: prevError" +#define GAUGE_NAME_DEBUG_F4 "debug f4: iParam" +#define GAUGE_NAME_DEBUG_F5 "debug f5: dParam" +#define GAUGE_NAME_DEBUG_F6 "debug f6: dTerm" +#define GAUGE_NAME_DEBUG_F7 "debug f7" +#define GAUGE_NAME_DEBUG_I1 "debug i1: pParam" +#define GAUGE_NAME_DEBUG_I2 "debug i2: offset" +#define GAUGE_NAME_DEBUG_I3 "debug i3" +#define GAUGE_NAME_DEBUG_I4 "debug i4" +#define GAUGE_NAME_DEBUG_I5 "debug i5" +#define GAUGE_NAME_DESIRED_GEAR "Desired Gear" +#define GAUGE_NAME_DETECTED_GEAR "Detected Gear" +#define GAUGE_NAME_DWELL_DUTY "dwell: coil duty cycle" +#define GAUGE_NAME_ECU_TEMPERATURE "ECU temperature" +#define GAUGE_NAME_ENGINE_CRC16 "Engine CRC16" +#define GAUGE_NAME_ETB_DUTY "ETB Duty" +#define GAUGE_NAME_ETB_ERROR "ETB position error" +#define GAUGE_NAME_ETB_TARGET "ETB position target" +#define GAUGE_NAME_FLEX "Flex Ethanol %" +#define GAUGE_NAME_FUEL_BARO_CORR "fuel: Barometric pressure mult" +#define GAUGE_NAME_FUEL_BASE "fuel: base mass" +#define GAUGE_NAME_FUEL_CHARGE_TEMP "fuel: Estimated charge temperature" +#define GAUGE_NAME_FUEL_CLT_CORR "fuel: CLT correction" +#define GAUGE_NAME_FUEL_CONSUMPTION "fuel: Total consumed" +#define GAUGE_NAME_FUEL_CRANKING "fuel: cranking" +#define GAUGE_NAME_FUEL_EL_EXTRA "fuel: engine load acceleration extra fuel" +#define GAUGE_NAME_FUEL_FLOW "fuel: Flow rate" +#define GAUGE_NAME_FUEL_IAT_CORR "fuel: IAT correction" +#define GAUGE_NAME_FUEL_INJ_DUTY "fuel: injector duty cycle" +#define GAUGE_NAME_FUEL_LAST_INJECTION "fuel: Last injection" +#define GAUGE_NAME_FUEL_LEVEL "fuel level" +#define GAUGE_NAME_FUEL_LOAD "fuel: load" +#define GAUGE_NAME_FUEL_PRESSURE_HIGH "Fuel pressure (high)" +#define GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS "bar" +#define GAUGE_NAME_FUEL_PRESSURE_LOW "Fuel pressure (low)" +#define GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS "kPa" +#define GAUGE_NAME_FUEL_RUNNING "fuel: running" +#define GAUGE_NAME_FUEL_TPS_EXTRA "fuel: TPS acceleration add fuel ms" +#define GAUGE_NAME_FUEL_TPS_ROC "fuel: TPS change" +#define GAUGE_NAME_FUEL_TRIM "fuel: fuel trim" +#define GAUGE_NAME_FUEL_TRIM_2 "fuel: fuel trim 2" +#define GAUGE_NAME_FUEL_VE "fuel: VE" +#define GAUGE_NAME_FUEL_WALL_AMOUNT "fuel: wall amount" +#define GAUGE_NAME_FUEL_WALL_CORRECTION "fuel: wall correction" +#define GAUGE_NAME_FW_VERSION "ECU Software Version" +#define GAUGE_NAME_GEAR_RATIO "Gearbox Ratio" +#define GAUGE_NAME_IAC "Idle Air Valve" +#define GAUGE_NAME_IAT "IAT" +#define GAUGE_NAME_IDLE_POSITION "Idle position sensor" +#define GAUGE_NAME_IGNITION_LOAD "ign: load" +#define GAUGE_NAME_INJECTOR_LAG "fuel: injector lag" +#define GAUGE_NAME_ISS "Input Shaft Speed" +#define GAUGE_NAME_KNOCK_1 "knock 1" +#define GAUGE_NAME_KNOCK_10 "knock 10" +#define GAUGE_NAME_KNOCK_11 "knock 11" +#define GAUGE_NAME_KNOCK_12 "knock 12" +#define GAUGE_NAME_KNOCK_2 "knock 2" +#define GAUGE_NAME_KNOCK_3 "knock 3" +#define GAUGE_NAME_KNOCK_4 "knock 4" +#define GAUGE_NAME_KNOCK_5 "knock 5" +#define GAUGE_NAME_KNOCK_6 "knock 6" +#define GAUGE_NAME_KNOCK_7 "knock 7" +#define GAUGE_NAME_KNOCK_8 "knock 8" +#define GAUGE_NAME_KNOCK_9 "knock 9" +#define GAUGE_NAME_KNOCK_COUNTER "knock: count" +#define GAUGE_NAME_KNOCK_LEVEL "knock: current level" +#define GAUGE_NAME_KNOCK_RETARD "knock: retard" +#define GAUGE_NAME_LAMBDA "Lambda" +#define GAUGE_NAME_LAMBDA2 "Lambda 2" +#define GAUGE_NAME_LAST_ERROR "Last error" +#define GAUGE_NAME_MAF "MAF" +#define GAUGE_NAME_MAP "MAP" +#define GAUGE_NAME_OIL_PRESSURE "Oil Pressure" +#define GAUGE_NAME_OIL_PRESSURE_UNITS "kPa" +#define GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH "Fuel pressure raw (high)" +#define GAUGE_NAME_RAW_FUEL_PRESSURE_LOW "Fuel pressure raw (low)" +#define GAUGE_NAME_RPM "RPM" +#define GAUGE_NAME_TARGET_AFR "fuel: target AFR" +#define GAUGE_NAME_TARGET_LAMBDA "fuel: target lambda" +#define GAUGE_NAME_TC_RATIO "Torque Converter Ratio" +#define GAUGE_NAME_TCHARGE "fuel: SD tCharge" +#define GAUGE_NAME_THROTTLE_PEDAL "Throttle pedal position" +#define GAUGE_NAME_TIME "Time" +#define GAUGE_NAME_TIMING_ADVANCE "timing" +#define GAUGE_NAME_TPS "TPS" +#define GAUGE_NAME_TPS2 "TPS2" +#define GAUGE_NAME_TRG_ERR "Trigger Error Counter" +#define GAUGE_NAME_TRG_GAP "Trigger Sync Latest Ratio" +#define GAUGE_NAME_TUNE_CRC16 "Tune CRC16" +#define GAUGE_NAME_TURBO_SPEED "Turbocharger Speed" +#define GAUGE_NAME_UPTIME "Uptime" +#define GAUGE_NAME_VBAT "VBatt" +#define GAUGE_NAME_VERSION "firmware" +#define GAUGE_NAME_VVS "Vehicle Speed" +#define GAUGE_NAME_VVT_B1E "VVT: bank 1 exhaust" +#define GAUGE_NAME_VVT_B1I "VVT: bank 1 intake" +#define GAUGE_NAME_VVT_B2E "VVT: bank 2 exhaust" +#define GAUGE_NAME_VVT_B2I "VVT: bank 2 intake" +#define GAUGE_NAME_VVT_TARGET_B1E "VVT: bank 1 exhaust target" +#define GAUGE_NAME_VVT_TARGET_B1I "VVT: bank 1 intake target" +#define GAUGE_NAME_VVT_TARGET_B2E "VVT: bank 2 exhaust target" +#define GAUGE_NAME_VVT_TARGET_B2I "VVT: bank 2 intake target" +#define GAUGE_NAME_WARNING_COUNT "Warning count" +#define GAUGE_NAME_WARNING_COUNTER "warning: counter" +#define GAUGE_NAME_WARNING_LAST "warning: last" +#define GAUGE_NAME_WG_POSITION "Wastegate position sensor" +#define gear_controller_e_enum "None", "Button Shift" +#define gear_e_GEAR_1 1 +#define gear_e_GEAR_2 2 +#define gear_e_GEAR_3 3 +#define gear_e_GEAR_4 4 +#define gear_e_NEUTRAL 0 +#define gear_e_REVERSE -1 +#define GearControllerMode_auto_enum 0="None",1="ButtonShift",2="Generic" +#define GearControllerMode_ButtonShift 1 +#define GearControllerMode_Generic 2 +#define GearControllerMode_None 0 +#define GEARS_COUNT 8 +#define Gpio_A0 2 +#define Gpio_A1 3 +#define Gpio_A10 12 +#define Gpio_A11 13 +#define Gpio_A12 14 +#define Gpio_A13 15 +#define Gpio_A14 16 +#define Gpio_A15 17 +#define Gpio_A2 4 +#define Gpio_A3 5 +#define Gpio_A4 6 +#define Gpio_A5 7 +#define Gpio_A6 8 +#define Gpio_A7 9 +#define Gpio_A8 10 +#define Gpio_A9 11 +#define Gpio_auto_enum 0="Unassigned",2="A0",3="A1",12="A10",13="A11",14="A12",15="A13",16="A14",17="A15",4="A2",5="A3",6="A4",7="A5",8="A6",9="A7",10="A8",11="A9",18="B0",19="B1",28="B10",29="B11",30="B12",31="B13",32="B14",33="B15",20="B2",21="B3",22="B4",23="B5",24="B6",25="B7",26="B8",27="B9",34="C0",35="C1",44="C10",45="C11",46="C12",47="C13",48="C14",49="C15",36="C2",37="C3",38="C4",39="C5",40="C6",41="C7",42="C8",43="C9",250="CAN_PIN_0",251="CAN_PIN_1",252="CAN_PIN_2",253="CAN_PIN_3",254="CAN_PIN_4",255="CAN_PIN_5",256="CAN_PIN_6",257="CAN_PIN_7",50="D0",51="D1",60="D10",61="D11",62="D12",63="D13",64="D14",65="D15",52="D2",53="D3",54="D4",55="D5",56="D6",57="D7",58="D8",59="D9",66="E0",67="E1",76="E10",77="E11",78="E12",79="E13",80="E14",81="E15",68="E2",69="E3",70="E4",71="E5",72="E6",73="E7",74="E8",75="E9",82="F0",83="F1",92="F10",93="F11",94="F12",95="F13",96="F14",97="F15",84="F2",85="F3",86="F4",87="F5",88="F6",89="F7",90="F8",91="F9",98="G0",99="G1",108="G10",109="G11",110="G12",111="G13",112="G14",113="G15",100="G2",101="G3",102="G4",103="G5",104="G6",105="G7",106="G8",107="G9",114="H0",115="H1",124="H10",125="H11",126="H12",127="H13",128="H14",129="H15",116="H2",117="H3",118="H4",119="H5",120="H6",121="H7",122="H8",123="H9",130="I0",131="I1",140="I10",141="I11",142="I12",143="I13",144="I14",145="I15",132="I2",133="I3",134="I4",135="I5",136="I6",137="I7",138="I8",139="I9",1="Invalid",188="MC33810_0_GD_0",189="MC33810_0_GD_1",190="MC33810_0_GD_2",191="MC33810_0_GD_3",184="MC33810_0_OUT_0",185="MC33810_0_OUT_1",186="MC33810_0_OUT_2",187="MC33810_0_OUT_3",196="MC33810_1_GD_0",197="MC33810_1_GD_1",198="MC33810_1_GD_2",199="MC33810_1_GD_3",192="MC33810_1_OUT_0",193="MC33810_1_OUT_1",194="MC33810_1_OUT_2",195="MC33810_1_OUT_3",162="MC33972_PIN_1",171="MC33972_PIN_10",172="MC33972_PIN_11",173="MC33972_PIN_12",174="MC33972_PIN_13",175="MC33972_PIN_14",176="MC33972_PIN_15",177="MC33972_PIN_16",178="MC33972_PIN_17",179="MC33972_PIN_18",180="MC33972_PIN_19",163="MC33972_PIN_2",181="MC33972_PIN_20",182="MC33972_PIN_21",183="MC33972_PIN_22",164="MC33972_PIN_3",165="MC33972_PIN_4",166="MC33972_PIN_5",167="MC33972_PIN_6",168="MC33972_PIN_7",169="MC33972_PIN_8",170="MC33972_PIN_9",146="TLE6240_PIN_1",155="TLE6240_PIN_10",156="TLE6240_PIN_11",157="TLE6240_PIN_12",158="TLE6240_PIN_13",159="TLE6240_PIN_14",160="TLE6240_PIN_15",161="TLE6240_PIN_16",147="TLE6240_PIN_2",148="TLE6240_PIN_3",149="TLE6240_PIN_4",150="TLE6240_PIN_5",151="TLE6240_PIN_6",152="TLE6240_PIN_7",153="TLE6240_PIN_8",154="TLE6240_PIN_9" +#define Gpio_B0 18 +#define Gpio_B1 19 +#define Gpio_B10 28 +#define Gpio_B11 29 +#define Gpio_B12 30 +#define Gpio_B13 31 +#define Gpio_B14 32 +#define Gpio_B15 33 +#define Gpio_B2 20 +#define Gpio_B3 21 +#define Gpio_B4 22 +#define Gpio_B5 23 +#define Gpio_B6 24 +#define Gpio_B7 25 +#define Gpio_B8 26 +#define Gpio_B9 27 +#define Gpio_C0 34 +#define Gpio_C1 35 +#define Gpio_C10 44 +#define Gpio_C11 45 +#define Gpio_C12 46 +#define Gpio_C13 47 +#define Gpio_C14 48 +#define Gpio_C15 49 +#define Gpio_C2 36 +#define Gpio_C3 37 +#define Gpio_C4 38 +#define Gpio_C5 39 +#define Gpio_C6 40 +#define Gpio_C7 41 +#define Gpio_C8 42 +#define Gpio_C9 43 +#define Gpio_CAN_PIN_0 250 +#define Gpio_CAN_PIN_1 251 +#define Gpio_CAN_PIN_2 252 +#define Gpio_CAN_PIN_3 253 +#define Gpio_CAN_PIN_4 254 +#define Gpio_CAN_PIN_5 255 +#define Gpio_CAN_PIN_6 256 +#define Gpio_CAN_PIN_7 257 +#define Gpio_D0 50 +#define Gpio_D1 51 +#define Gpio_D10 60 +#define Gpio_D11 61 +#define Gpio_D12 62 +#define Gpio_D13 63 +#define Gpio_D14 64 +#define Gpio_D15 65 +#define Gpio_D2 52 +#define Gpio_D3 53 +#define Gpio_D4 54 +#define Gpio_D5 55 +#define Gpio_D6 56 +#define Gpio_D7 57 +#define Gpio_D8 58 +#define Gpio_D9 59 +#define Gpio_E0 66 +#define Gpio_E1 67 +#define Gpio_E10 76 +#define Gpio_E11 77 +#define Gpio_E12 78 +#define Gpio_E13 79 +#define Gpio_E14 80 +#define Gpio_E15 81 +#define Gpio_E2 68 +#define Gpio_E3 69 +#define Gpio_E4 70 +#define Gpio_E5 71 +#define Gpio_E6 72 +#define Gpio_E7 73 +#define Gpio_E8 74 +#define Gpio_E9 75 +#define Gpio_enum "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +#define Gpio_F0 82 +#define Gpio_F1 83 +#define Gpio_F10 92 +#define Gpio_F11 93 +#define Gpio_F12 94 +#define Gpio_F13 95 +#define Gpio_F14 96 +#define Gpio_F15 97 +#define Gpio_F2 84 +#define Gpio_F3 85 +#define Gpio_F4 86 +#define Gpio_F5 87 +#define Gpio_F6 88 +#define Gpio_F7 89 +#define Gpio_F8 90 +#define Gpio_F9 91 +#define Gpio_G0 98 +#define Gpio_G1 99 +#define Gpio_G10 108 +#define Gpio_G11 109 +#define Gpio_G12 110 +#define Gpio_G13 111 +#define Gpio_G14 112 +#define Gpio_G15 113 +#define Gpio_G2 100 +#define Gpio_G3 101 +#define Gpio_G4 102 +#define Gpio_G5 103 +#define Gpio_G6 104 +#define Gpio_G7 105 +#define Gpio_G8 106 +#define Gpio_G9 107 +#define Gpio_H0 114 +#define Gpio_H1 115 +#define Gpio_H10 124 +#define Gpio_H11 125 +#define Gpio_H12 126 +#define Gpio_H13 127 +#define Gpio_H14 128 +#define Gpio_H15 129 +#define Gpio_H2 116 +#define Gpio_H3 117 +#define Gpio_H4 118 +#define Gpio_H5 119 +#define Gpio_H6 120 +#define Gpio_H7 121 +#define Gpio_H8 122 +#define Gpio_H9 123 +#define Gpio_I0 130 +#define Gpio_I1 131 +#define Gpio_I10 140 +#define Gpio_I11 141 +#define Gpio_I12 142 +#define Gpio_I13 143 +#define Gpio_I14 144 +#define Gpio_I15 145 +#define Gpio_I2 132 +#define Gpio_I3 133 +#define Gpio_I4 134 +#define Gpio_I5 135 +#define Gpio_I6 136 +#define Gpio_I7 137 +#define Gpio_I8 138 +#define Gpio_I9 139 +#define Gpio_Invalid 1 +#define Gpio_MC33810_0_GD_0 188 +#define Gpio_MC33810_0_GD_1 189 +#define Gpio_MC33810_0_GD_2 190 +#define Gpio_MC33810_0_GD_3 191 +#define Gpio_MC33810_0_OUT_0 184 +#define Gpio_MC33810_0_OUT_1 185 +#define Gpio_MC33810_0_OUT_2 186 +#define Gpio_MC33810_0_OUT_3 187 +#define Gpio_MC33810_1_GD_0 196 +#define Gpio_MC33810_1_GD_1 197 +#define Gpio_MC33810_1_GD_2 198 +#define Gpio_MC33810_1_GD_3 199 +#define Gpio_MC33810_1_OUT_0 192 +#define Gpio_MC33810_1_OUT_1 193 +#define Gpio_MC33810_1_OUT_2 194 +#define Gpio_MC33810_1_OUT_3 195 +#define Gpio_MC33972_PIN_1 162 +#define Gpio_MC33972_PIN_10 171 +#define Gpio_MC33972_PIN_11 172 +#define Gpio_MC33972_PIN_12 173 +#define Gpio_MC33972_PIN_13 174 +#define Gpio_MC33972_PIN_14 175 +#define Gpio_MC33972_PIN_15 176 +#define Gpio_MC33972_PIN_16 177 +#define Gpio_MC33972_PIN_17 178 +#define Gpio_MC33972_PIN_18 179 +#define Gpio_MC33972_PIN_19 180 +#define Gpio_MC33972_PIN_2 163 +#define Gpio_MC33972_PIN_20 181 +#define Gpio_MC33972_PIN_21 182 +#define Gpio_MC33972_PIN_22 183 +#define Gpio_MC33972_PIN_3 164 +#define Gpio_MC33972_PIN_4 165 +#define Gpio_MC33972_PIN_5 166 +#define Gpio_MC33972_PIN_6 167 +#define Gpio_MC33972_PIN_7 168 +#define Gpio_MC33972_PIN_8 169 +#define Gpio_MC33972_PIN_9 170 +#define Gpio_TLE6240_PIN_1 146 +#define Gpio_TLE6240_PIN_10 155 +#define Gpio_TLE6240_PIN_11 156 +#define Gpio_TLE6240_PIN_12 157 +#define Gpio_TLE6240_PIN_13 158 +#define Gpio_TLE6240_PIN_14 159 +#define Gpio_TLE6240_PIN_15 160 +#define Gpio_TLE6240_PIN_16 161 +#define Gpio_TLE6240_PIN_2 147 +#define Gpio_TLE6240_PIN_3 148 +#define Gpio_TLE6240_PIN_4 149 +#define Gpio_TLE6240_PIN_5 150 +#define Gpio_TLE6240_PIN_6 151 +#define Gpio_TLE6240_PIN_7 152 +#define Gpio_TLE6240_PIN_8 153 +#define Gpio_TLE6240_PIN_9 154 +#define Gpio_Unassigned 0 +#define gppwm_channel_e_auto_enum 0="GPPWM_Zero",9="GPPWM_AccelPedal",16="GPPWM_AuxLinear1",17="GPPWM_AuxLinear2",7="GPPWM_AuxTemp1",8="GPPWM_AuxTemp2",3="GPPWM_Clt",15="GPPWM_EthanolPercent",5="GPPWM_FuelLoad",18="GPPWM_GppwmOutput1",19="GPPWM_GppwmOutput2",20="GPPWM_GppwmOutput3",21="GPPWM_GppwmOutput4",4="GPPWM_Iat",6="GPPWM_IgnLoad",22="GPPWM_LuaGauge1",23="GPPWM_LuaGauge2",2="GPPWM_Map",24="GPPWM_Rpm",1="GPPWM_Tps",12="GPPWM_VVT_1E",11="GPPWM_VVT_1I",14="GPPWM_VVT_2E",13="GPPWM_VVT_2I",10="GPPWM_Vbatt" +#define gppwm_channel_e_enum "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" +#define gppwm_channel_e_GPPWM_AccelPedal 9 +#define gppwm_channel_e_GPPWM_AuxLinear1 16 +#define gppwm_channel_e_GPPWM_AuxLinear2 17 +#define gppwm_channel_e_GPPWM_AuxTemp1 7 +#define gppwm_channel_e_GPPWM_AuxTemp2 8 +#define gppwm_channel_e_GPPWM_Clt 3 +#define gppwm_channel_e_GPPWM_EthanolPercent 15 +#define gppwm_channel_e_GPPWM_FuelLoad 5 +#define gppwm_channel_e_GPPWM_GppwmOutput1 18 +#define gppwm_channel_e_GPPWM_GppwmOutput2 19 +#define gppwm_channel_e_GPPWM_GppwmOutput3 20 +#define gppwm_channel_e_GPPWM_GppwmOutput4 21 +#define gppwm_channel_e_GPPWM_Iat 4 +#define gppwm_channel_e_GPPWM_IgnLoad 6 +#define gppwm_channel_e_GPPWM_LuaGauge1 22 +#define gppwm_channel_e_GPPWM_LuaGauge2 23 +#define gppwm_channel_e_GPPWM_Map 2 +#define gppwm_channel_e_GPPWM_Rpm 24 +#define gppwm_channel_e_GPPWM_Tps 1 +#define gppwm_channel_e_GPPWM_Vbatt 10 +#define gppwm_channel_e_GPPWM_VVT_1E 12 +#define gppwm_channel_e_GPPWM_VVT_1I 11 +#define gppwm_channel_e_GPPWM_VVT_2E 14 +#define gppwm_channel_e_GPPWM_VVT_2I 13 +#define gppwm_channel_e_GPPWM_Zero 0 +#define gppwm_channel_size 108 +#define GPPWM_CHANNELS 4 +#define gppwm_compare_mode_e_GPPWM_GreaterThan 0 +#define gppwm_compare_mode_e_GPPWM_LessThan 1 +#define GPPWM_LOAD_COUNT 8 +#define GPPWM_NOTE_SIZE 16 +#define GPPWM_RPM_COUNT 8 +#define HIGH_SPEED_COUNT 32 +#define hpfp_cam_e_auto_enum 0="HPFP_CAM_NONE",2="HPFP_CAM_EX1",4="HPFP_CAM_EX2",1="HPFP_CAM_IN1",3="HPFP_CAM_IN2" +#define hpfp_cam_e_enum "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +#define hpfp_cam_e_HPFP_CAM_EX1 2 +#define hpfp_cam_e_HPFP_CAM_EX2 4 +#define hpfp_cam_e_HPFP_CAM_IN1 1 +#define hpfp_cam_e_HPFP_CAM_IN2 3 +#define hpfp_cam_e_HPFP_CAM_NONE 0 +#define HPFP_COMPENSATION_SIZE 10 +#define HPFP_DEADTIME_SIZE 8 +#define HPFP_LOBE_PROFILE_SIZE 16 +#define HPFP_TARGET_SIZE 10 +#define HW_MAX_ADC_INDEX 17 +#define IAC_PID_MULT_SIZE 8 +#define IAT_CURVE_SIZE 16 +#define IDLE_ADVANCE_CURVE_SIZE 8 +#define idle_hardware_s_size 12 +#define idle_mode_e_auto_enum 0="IM_AUTO",1="IM_MANUAL" +#define idle_mode_e_IM_AUTO 0 +#define idle_mode_e_IM_MANUAL 1 +#define idle_state_e_BLIP 64 +#define idle_state_e_INIT 0 +#define idle_state_e_PID_UPPER 16 +#define idle_state_e_PID_VALUE 4 +#define idle_state_e_RPM_DEAD_ZONE 2 +#define idle_state_e_TPS_THRESHOLD 1 +#define IDLE_VE_SIZE 4 +#define IGN_BLEND_COUNT 4 +#define IGN_LOAD_COUNT 16 +#define IGN_RPM_COUNT 16 +#define ignition_mode_e_auto_enum 0="IM_ONE_COIL",1="IM_INDIVIDUAL_COILS",3="IM_TWO_COILS",2="IM_WASTED_SPARK" +#define ignition_mode_e_IM_INDIVIDUAL_COILS 1 +#define ignition_mode_e_IM_ONE_COIL 0 +#define ignition_mode_e_IM_TWO_COILS 3 +#define ignition_mode_e_IM_WASTED_SPARK 2 +#define imu_type_e_auto_enum 0="IMU_NONE",2="IMU_MM5_10",3="IMU_TYPE_3",4="IMU_TYPE_4",5="IMU_TYPE_MB_A0065422618",1="IMU_VAG" +#define imu_type_e_IMU_MM5_10 2 +#define imu_type_e_IMU_NONE 0 +#define imu_type_e_IMU_TYPE_3 3 +#define imu_type_e_IMU_TYPE_4 4 +#define imu_type_e_IMU_TYPE_MB_A0065422618 5 +#define imu_type_e_IMU_VAG 1 +#define INDICATOR_NAME_AC_SWITCH "AC switch" +#define INDICATOR_NAME_BRAKE_DOWN "brake: down" +#define INDICATOR_NAME_CLUTCH_DOWN "clutch: down" +#define INDICATOR_NAME_CLUTCH_UP "clutch: up" +#define injection_mode_e_auto_enum 0="IM_SIMULTANEOUS",2="IM_BATCH",1="IM_SEQUENTIAL",3="IM_SINGLE_POINT" +#define injection_mode_e_IM_BATCH 2 +#define injection_mode_e_IM_SEQUENTIAL 1 +#define injection_mode_e_IM_SIMULTANEOUS 0 +#define injection_mode_e_IM_SINGLE_POINT 3 +#define InjectionTimingMode_auto_enum 0="End",2="Center",1="Start" +#define InjectionTimingMode_Center 2 +#define InjectionTimingMode_End 0 +#define InjectionTimingMode_Start 1 +#define injector_compensation_mode_e_auto_enum 0="ICM_None",1="ICM_FixedRailPressure",2="ICM_SensedRailPressure" +#define injector_compensation_mode_e_ICM_FixedRailPressure 1 +#define injector_compensation_mode_e_ICM_None 0 +#define injector_compensation_mode_e_ICM_SensedRailPressure 2 +#define injector_pressure_type_e_auto_enum 0="IPT_Low",1="IPT_High" +#define injector_pressure_type_e_IPT_High 1 +#define injector_pressure_type_e_IPT_Low 0 +#define injector_s_size 68 +#define InjectorNonlinearMode_auto_enum 0="INJ_None",2="INJ_FordModel",1="INJ_PolynomialAdder" +#define InjectorNonlinearMode_INJ_FordModel 2 +#define InjectorNonlinearMode_INJ_None 0 +#define InjectorNonlinearMode_INJ_PolynomialAdder 1 +#define launchActivationMode_e_ALWAYS_ACTIVE_LAUNCH 2 +#define launchActivationMode_e_auto_enum 0="SWITCH_INPUT_LAUNCH",2="ALWAYS_ACTIVE_LAUNCH",1="CLUTCH_INPUT_LAUNCH" +#define launchActivationMode_e_CLUTCH_INPUT_LAUNCH 1 +#define launchActivationMode_e_enum "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +#define launchActivationMode_e_SWITCH_INPUT_LAUNCH 0 +#define linear_sensor_s_size 20 +#define load_override_e_AFR_AccPedal 3 +#define load_override_e_AFR_CylFilling 4 +#define load_override_e_AFR_MAP 1 +#define load_override_e_AFR_None 0 +#define load_override_e_AFR_Tps 2 +#define load_override_e_auto_enum 0="AFR_None",3="AFR_AccPedal",4="AFR_CylFilling",1="AFR_MAP",2="AFR_Tps" +#define load_override_e_enum "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +#define LOG_DELIMITER "`" +#define LOGIC_ANALYZER_CHANNEL_COUNT 4 +#define LUA_ANALOG_INPUT_COUNT 8 +#define LUA_DIGITAL_INPUT_COUNT 8 +#define LUA_GAUGE_COUNT 2 +#define LUA_PWM_COUNT 8 +#define LUA_SCRIPT_SIZE 8000 +#define MAF_DECODING_COUNT 256 +#define maf_sensor_type_e_auto_enum 0="CUSTOM",2="Bosch0280218004",1="Bosch0280218037",3="DensoTODO" +#define maf_sensor_type_e_Bosch0280218004 2 +#define maf_sensor_type_e_Bosch0280218037 1 +#define maf_sensor_type_e_CUSTOM 0 +#define maf_sensor_type_e_DensoTODO 3 +#define maf_sensor_type_e_enum "v0", "v1", "v2", "v3" +#define MAIN_HELP_URL "http://www.rusefi.com/" +#define MAP_ANGLE_SIZE 8 +#define MAP_sensor_config_s_size 140 +#define MAP_WINDOW_SIZE 8 +#define MAX_CYLINDER_COUNT 12 +#define MLQ_FIELD_HEADER_SIZE 89 +#define MLQ_HEADER_SIZE 24 +#define MOCK_PPS_POSITION_COMMAND "mock_pps_position" +#define MOCK_PPS_VOLTAGE_COMMAND "mock_pps_voltage" +#define operation_mode_e_FOUR_STROKE_CAM_SENSOR 2 +#define operation_mode_e_FOUR_STROKE_CRANK_SENSOR 1 +#define operation_mode_e_FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR 4 +#define operation_mode_e_FOUR_STROKE_THREE_TIMES_CRANK_SENSOR 5 +#define operation_mode_e_FOUR_STROKE_TWELVE_TIMES_CRANK_SENSOR 6 +#define operation_mode_e_OM_NONE 0 +#define operation_mode_e_TWO_STROKE 3 +#define output_pin_e_enum 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +#define output_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D05 - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1 relay","D03 - FAN 2 relay","C16 - Tacho out","C14 - FPump modulator","D23 - Fuel Pump relay","D22 - EGR control","D19 - Check Engine indicator","C15 - AUX1 OD out","D18 - Auxillary air valve","D06 - Absorber purge valve","D02 - IDLE open","D01 - IDLE close","AUX0_17 - AUX0 OD output 0","AUX0_14 - AUX0 OD output 1","B08 - AC clutch","D20 - Inertia-Resonance Super-Charger control","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D13 - Injector 1","D11 - Injector 3","A01 - Injector 5","INVALID","D07 - Ignition Cyl 4","D09 - Ignition Cyl 3","INVALID","D21 - Ignition Cyl 5","D12 - Injector 2","D26 - Injector 4","A12 - Injector 6","INVALID","INVALID","D16 - Ignition Cyl 6","D08 - Ignition Cyl 2","D10 - Ignition Cyl 1" +#define PACK_ADD_TEMPERATURE 40 +#define PACK_MULT_AFR 1000 +#define PACK_MULT_AFR_CFG 10 +#define PACK_MULT_ANGLE 50 +#define PACK_MULT_FUEL_FLOW 200 +#define PACK_MULT_FUEL_MASS 100 +#define PACK_MULT_HIGH_PRESSURE 10 +#define PACK_MULT_LAMBDA 10000 +#define PACK_MULT_LAMBDA_CFG 147 +#define PACK_MULT_MASS_FLOW 10 +#define PACK_MULT_MS 300 +#define PACK_MULT_PERCENT 100 +#define PACK_MULT_PRESSURE 30 +#define PACK_MULT_TEMPERATURE 100 +#define PACK_MULT_VOLTAGE 1000 +#define PACK_PERCENT_BYTE_MULT 100.0 +#define PEDAL_TO_TPS_SIZE 8 +#define PERCENT_TRIM_BYTE_PACKING_DIV 0.02 +#define persistent_config_s_size 22296 +#define pid_s_size 20 +#define PidAutoTune_AutoTunerState_AUTOTUNER_OFF 0 +#define PidAutoTune_AutoTunerState_CONVERGED 16 +#define PidAutoTune_AutoTunerState_FAILED 128 +#define PidAutoTune_AutoTunerState_RELAY_STEP_DOWN 8 +#define PidAutoTune_AutoTunerState_RELAY_STEP_UP 4 +#define PidAutoTune_AutoTunerState_STEADY_STATE_AFTER_STEP_UP 2 +#define PidAutoTune_AutoTunerState_STEADY_STATE_AT_BASELINE 1 +#define PidAutoTune_Peak_MAXIMUM 1 +#define PidAutoTune_Peak_MINIMUM -1 +#define PidAutoTune_Peak_NOT_A_PEAK 0 +#define pin_input_mode_e_auto_enum 0="PI_DEFAULT",2="PI_PULLDOWN",1="PI_PULLUP" +#define pin_input_mode_e_enum "DEFAULT", "PULLUP", "PULLDOWN" +#define pin_input_mode_e_PI_DEFAULT 0 +#define pin_input_mode_e_PI_PULLDOWN 2 +#define pin_input_mode_e_PI_PULLUP 1 +#define pin_mode_e_auto_enum 0="PO_DEFAULT",4="PO_OPENDRAIN",64="PO_PULLDOWN",32="PO_PULLUP" +#define pin_mode_e_enum "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" +#define pin_mode_e_PO_DEFAULT 0 +#define pin_mode_e_PO_OPENDRAIN 4 +#define pin_mode_e_PO_PULLDOWN 64 +#define pin_mode_e_PO_PULLUP 32 +#define pin_output_mode_e_auto_enum 0="OM_DEFAULT",1="OM_INVERTED",2="OM_OPENDRAIN",3="OM_OPENDRAIN_INVERTED" +#define pin_output_mode_e_enum "default", "default inverted", "open collector", "open collector inverted" +#define pin_output_mode_e_OM_DEFAULT 0 +#define pin_output_mode_e_OM_INVERTED 1 +#define pin_output_mode_e_OM_OPENDRAIN 2 +#define pin_output_mode_e_OM_OPENDRAIN_INVERTED 3 +#define PROTOCOL_ANALOG_CHART "analog_chart" +#define PROTOCOL_COIL1_SHORT_NAME "c1" +#define PROTOCOL_CRANK1 "t1" +#define PROTOCOL_CRANK2 "t2" +#define PROTOCOL_ENGINE_SNIFFER "wave_chart" +#define PROTOCOL_ES_DOWN "d" +#define PROTOCOL_ES_UP "u" +#define PROTOCOL_HELLO_PREFIX "***" +#define PROTOCOL_HPFP_NAME "hpfp" +#define PROTOCOL_INJ1_SHORT_NAME "i1" +#define PROTOCOL_MSG "msg" +#define PROTOCOL_OUTPIN "outpin" +#define PROTOCOL_SIGNATURE_PREFIX "rusEFI " +#define PROTOCOL_TACH_NAME "tach" +#define PROTOCOL_TEST_RESPONSE_TAG "ts_p_alive" +#define PROTOCOL_VERSION_TAG "rusEfiVersion" +#define PROTOCOL_VVT1_NAME "VVT1" +#define PROTOCOL_VVT2_NAME "VVT2" +#define PROTOCOL_VVT3_NAME "VVT3" +#define PROTOCOL_VVT4_NAME "VVT4" +#define PROTOCOL_WA_CHANNEL_1 "input1" +#define PROTOCOL_WA_CHANNEL_2 "input2" +#define PROTOCOL_WA_CHANNEL_3 "input3" +#define PROTOCOL_WA_CHANNEL_4 "input4" +#define SCRIPT_CURVE_16 16 +#define SCRIPT_CURVE_8 8 +#define SCRIPT_CURVE_COUNT 6 +#define SCRIPT_SETTING_COUNT 8 +#define SCRIPT_TABLE_8 8 +#define SCRIPT_TABLE_COUNT 4 +#define SelectedGear_Drive 6 +#define SelectedGear_Invalid 0 +#define SelectedGear_Low 11 +#define SelectedGear_Manual 7 +#define SelectedGear_Manual1 10 +#define SelectedGear_Manual2 9 +#define SelectedGear_Manual3 8 +#define SelectedGear_ManualMinus 2 +#define SelectedGear_ManualPlus 1 +#define SelectedGear_Neutral 5 +#define SelectedGear_Park 3 +#define SelectedGear_Reverse 4 +#define sensor_chart_e_auto_enum 0="SC_OFF",5="SC_AUX_FAST1",4="SC_DETAILED_RPM",3="SC_RPM_ACCEL",1="SC_TRIGGER" +#define sensor_chart_e_enum "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +#define sensor_chart_e_SC_AUX_FAST1 5 +#define sensor_chart_e_SC_DETAILED_RPM 4 +#define sensor_chart_e_SC_OFF 0 +#define sensor_chart_e_SC_RPM_ACCEL 3 +#define sensor_chart_e_SC_TRIGGER 1 +#define SENT_INPUT_COUNT 1 +#define SentEtbType_auto_enum 0="NONE",2="FORD_TYPE_1",1="GM_TYPE_1" +#define SentEtbType_enum "None", "GM type 1", "Ford type 1" +#define SentEtbType_FORD_TYPE_1 2 +#define SentEtbType_GM_TYPE_1 1 +#define SentEtbType_NONE 0 +#define show_Frankenso_presets false +#define show_Proteus_presets false +#define show_test_presets false +#define SIGNATURE_HASH 3048760128 +#define specs_s_size 12 +#define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" +#define spi_device_e_SPI_DEVICE_1 1 +#define spi_device_e_SPI_DEVICE_2 2 +#define spi_device_e_SPI_DEVICE_3 3 +#define spi_device_e_SPI_DEVICE_4 4 +#define spi_device_e_SPI_NONE 0 +#define spi_pins_size 8 +#define spi_speed_e__150KHz 3 +#define spi_speed_e__1_25MHz 2 +#define spi_speed_e__2_5MHz 1 +#define spi_speed_e__5MHz 0 +#define stepper_num_micro_steps_e_auto_enum 0="STEPPER_FULL",8="STEPPER_EIGHTH",4="STEPPER_FOURTH",2="STEPPER_HALF" +#define stepper_num_micro_steps_e_enum "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +#define stepper_num_micro_steps_e_STEPPER_EIGHTH 8 +#define stepper_num_micro_steps_e_STEPPER_FOURTH 4 +#define stepper_num_micro_steps_e_STEPPER_FULL 0 +#define stepper_num_micro_steps_e_STEPPER_HALF 2 +#define STFT_BANK_COUNT 2 +#define stft_cell_cfg_s_size 4 +#define STFT_CELL_COUNT 4 +#define stft_s_size 24 +#define switch_input_pin_e_enum 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +#define switch_input_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din" +#define tChargeMode_e_auto_enum 0="TCHARGE_MODE_RPM_TPS",1="TCHARGE_MODE_AIR_INTERP",2="TCHARGE_MODE_AIR_INTERP_TABLE" +#define tChargeMode_e_enum "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +#define tChargeMode_e_TCHARGE_MODE_AIR_INTERP 1 +#define tChargeMode_e_TCHARGE_MODE_AIR_INTERP_TABLE 2 +#define tChargeMode_e_TCHARGE_MODE_RPM_TPS 0 +#define TCU_GEAR_COUNT 10 +#define TCU_MAGIC_SIZE 8 +#define TCU_SOLENOID_COUNT 6 +#define thermistor_conf_s_size 28 +#define ThermistorConf_size 32 +#define timing_mode_e_auto_enum 0="TM_DYNAMIC",1="TM_FIXED" +#define timing_mode_e_TM_DYNAMIC 0 +#define timing_mode_e_TM_FIXED 1 +#define tle8888_mode_e_auto_enum 0="TL_AUTO",3="TL_HALL",2="TL_MANUAL",1="TL_SEMI_AUTO" +#define tle8888_mode_e_TL_AUTO 0 +#define tle8888_mode_e_TL_HALL 3 +#define tle8888_mode_e_TL_MANUAL 2 +#define tle8888_mode_e_TL_SEMI_AUTO 1 +#define TOOTH_DATA_LENGTH 2000 +#define TOOTH_PACKET_COUNT 1000 +#define TOOTH_PACKET_SIZE 2 +#define TOP_DEAD_CENTER_MESSAGE "r" +#define TORQUE_CURVE_SIZE 6 +#define TOTAL_CONFIG_SIZE 22296 +#define TPS_2_BYTE_PACKING_MULT 100 +#define TPS_TPS_ACCEL_CLT_CORR_TABLE 4 +#define TPS_TPS_ACCEL_TABLE 8 +#define transmission_controller_e_enum "None", "Simple Transmission", "GM 4L6X" +#define TransmissionControllerMode_auto_enum 0="None",2="Gm4l6x",1="SimpleTransmissionController" +#define TransmissionControllerMode_Gm4l6x 2 +#define TransmissionControllerMode_None 0 +#define TransmissionControllerMode_SimpleTransmissionController 1 +#define TRIGGER_COMMENT "#" +#define trigger_config_s_size 12 +#define TRIGGER_CRANK_BASED 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 +#define TRIGGER_CYCLE_DURATION "cycleDuration" +#define TRIGGER_GAP_FROM "gapFrom" +#define TRIGGER_GAP_TO "gapTo" +#define TRIGGER_GAPS_COUNT "gapsCount" +#define TRIGGER_HARDCODED_OPERATION_MODE "knownOperationMode" +#define TRIGGER_HAS_SECOND_CHANNEL "hasSecondChannel" +#define TRIGGER_INPUT_PIN_COUNT 2 +#define TRIGGER_IS_CRANK_KEY "crankBased" +#define TRIGGER_IS_SECOND_WHEEL_CAM "isSecondWheelCam" +#define TRIGGER_SIMULATOR_PIN_COUNT 2 +#define trigger_type_e_auto_enum 0="TT_TOOTHED_WHEEL",38="TT_12_TOOTH_CRANK",50="TT_1_16",25="TT_2JZ_3_34",70="TT_36_2_1",71="TT_36_2_1_1",23="TT_36_2_2_2",31="TT_3_1_CAM",20="TT_60_2_VW",21="TT_BENELLI_TRE",30="TT_CHRYSLER_NGC_36_2_2",6="TT_DAIHATSU",2="TT_DODGE_NEON_1995",39="TT_DODGE_NEON_1995_ONLY_CRANK",14="TT_DODGE_NEON_2003_CAM",32="TT_DODGE_NEON_2003_CRANK",19="TT_DODGE_RAM",22="TT_DODGE_STRATUS",41="TT_FIAT_IAW_P8",1="TT_FORD_ASPIRE",42="TT_FORD_ST170",65="TT_FORD_TFI_PIP",27="TT_GM_24x",74="TT_GM_24x_2",54="TT_GM_60_2_2_2",5="TT_GM_7X",28="TT_HONDA_CBR_600",67="TT_HONDA_K_CAM_4_1",46="TT_HONDA_K_CRANK_12_1",37="TT_JEEP_18_2_2_2",40="TT_JEEP_4_CYL",57="TT_KAWA_KX450F",15="TT_MAZDA_DOHC_1_4",3="TT_MAZDA_MIATA_NA",35="TT_MAZDA_MIATA_VVT_TEST",7="TT_MAZDA_SOHC_4",10="TT_MERCEDES_2_SEGMENT",33="TT_MIATA_VVT",11="TT_MITSUBISHI_4G93",4="TT_MITSUBISHI_MESS",34="TT_MITSU_4G63_CAM",29="TT_MITSU_4G9x_CAM",52="TT_NISSAN_MR18_CAM_VVT",68="TT_NISSAN_MR18_CRANK",61="TT_NISSAN_QR25",24="TT_NISSAN_SR20VE",60="TT_NISSAN_VQ30",58="TT_NISSAN_VQ35",18="TT_ONE",16="TT_ONE_PLUS_ONE",44="TT_RENIX_44_2_2",45="TT_RENIX_66_2_2_2",26="TT_ROVER_K",55="TT_SKODA_FAVORIT",36="TT_SUBARU_7_6",51="TT_SUBARU_7_WITHOUT_6",12="TT_SUBARU_EZ30",49="TT_SUBARU_SVX",64="TT_SUBARU_SVX_CAM_VVT",63="TT_SUBARU_SVX_CRANK_1",66="TT_SUZUKI_G13B",69="TT_TOOTHED_WHEEL_32_2",9="TT_TOOTHED_WHEEL_36_1",48="TT_TOOTHED_WHEEL_36_2",8="TT_TOOTHED_WHEEL_60_2",53="TT_TRI_TACH",75="TT_UNUSED",56="TT_VVT_BARRA_3_PLUS_1",47="TT_VVT_BOSCH_QUICK_START",17="TT_VVT_JZ",13="TT_VVT_MAZDA_SKYACTIV",43="TT_VVT_MIATA_NB",62="TT_VVT_MITSUBISHI_3A92",72="TT_VVT_MITSUBISHI_6G75",59="TT_VVT_NISSAN_VQ35",73="TT_VVT_TOYOTA_4_1" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +#define trigger_type_e_Force_4_bytes_size_trigger_type 70000 +#define trigger_type_e_TT_12_TOOTH_CRANK 38 +#define trigger_type_e_TT_1_16 50 +#define trigger_type_e_TT_2JZ_3_34 25 +#define trigger_type_e_TT_36_2_1 70 +#define trigger_type_e_TT_36_2_1_1 71 +#define trigger_type_e_TT_36_2_2_2 23 +#define trigger_type_e_TT_3_1_CAM 31 +#define trigger_type_e_TT_60_2_VW 20 +#define trigger_type_e_TT_BENELLI_TRE 21 +#define trigger_type_e_TT_CHRYSLER_NGC_36_2_2 30 +#define trigger_type_e_TT_DAIHATSU 6 +#define trigger_type_e_TT_DODGE_NEON_1995 2 +#define trigger_type_e_TT_DODGE_NEON_1995_ONLY_CRANK 39 +#define trigger_type_e_TT_DODGE_NEON_2003_CAM 14 +#define trigger_type_e_TT_DODGE_NEON_2003_CRANK 32 +#define trigger_type_e_TT_DODGE_RAM 19 +#define trigger_type_e_TT_DODGE_STRATUS 22 +#define trigger_type_e_TT_FIAT_IAW_P8 41 +#define trigger_type_e_TT_FORD_ASPIRE 1 +#define trigger_type_e_TT_FORD_ST170 42 +#define trigger_type_e_TT_FORD_TFI_PIP 65 +#define trigger_type_e_TT_GM_24x 27 +#define trigger_type_e_TT_GM_24x_2 74 +#define trigger_type_e_TT_GM_60_2_2_2 54 +#define trigger_type_e_TT_GM_7X 5 +#define trigger_type_e_TT_HONDA_CBR_600 28 +#define trigger_type_e_TT_HONDA_K_CAM_4_1 67 +#define trigger_type_e_TT_HONDA_K_CRANK_12_1 46 +#define trigger_type_e_TT_JEEP_18_2_2_2 37 +#define trigger_type_e_TT_JEEP_4_CYL 40 +#define trigger_type_e_TT_KAWA_KX450F 57 +#define trigger_type_e_TT_MAZDA_DOHC_1_4 15 +#define trigger_type_e_TT_MAZDA_MIATA_NA 3 +#define trigger_type_e_TT_MAZDA_MIATA_VVT_TEST 35 +#define trigger_type_e_TT_MAZDA_SOHC_4 7 +#define trigger_type_e_TT_MERCEDES_2_SEGMENT 10 +#define trigger_type_e_TT_MIATA_VVT 33 +#define trigger_type_e_TT_MITSU_4G63_CAM 34 +#define trigger_type_e_TT_MITSU_4G9x_CAM 29 +#define trigger_type_e_TT_MITSUBISHI_4G93 11 +#define trigger_type_e_TT_MITSUBISHI_MESS 4 +#define trigger_type_e_TT_NISSAN_MR18_CAM_VVT 52 +#define trigger_type_e_TT_NISSAN_MR18_CRANK 68 +#define trigger_type_e_TT_NISSAN_QR25 61 +#define trigger_type_e_TT_NISSAN_SR20VE 24 +#define trigger_type_e_TT_NISSAN_VQ30 60 +#define trigger_type_e_TT_NISSAN_VQ35 58 +#define trigger_type_e_TT_ONE 18 +#define trigger_type_e_TT_ONE_PLUS_ONE 16 +#define trigger_type_e_TT_RENIX_44_2_2 44 +#define trigger_type_e_TT_RENIX_66_2_2_2 45 +#define trigger_type_e_TT_ROVER_K 26 +#define trigger_type_e_TT_SKODA_FAVORIT 55 +#define trigger_type_e_TT_SUBARU_7_6 36 +#define trigger_type_e_TT_SUBARU_7_WITHOUT_6 51 +#define trigger_type_e_TT_SUBARU_EZ30 12 +#define trigger_type_e_TT_SUBARU_SVX 49 +#define trigger_type_e_TT_SUBARU_SVX_CAM_VVT 64 +#define trigger_type_e_TT_SUBARU_SVX_CRANK_1 63 +#define trigger_type_e_TT_SUZUKI_G13B 66 +#define trigger_type_e_TT_TOOTHED_WHEEL 0 +#define trigger_type_e_TT_TOOTHED_WHEEL_32_2 69 +#define trigger_type_e_TT_TOOTHED_WHEEL_36_1 9 +#define trigger_type_e_TT_TOOTHED_WHEEL_36_2 48 +#define trigger_type_e_TT_TOOTHED_WHEEL_60_2 8 +#define trigger_type_e_TT_TRI_TACH 53 +#define trigger_type_e_TT_UNUSED 75 +#define trigger_type_e_TT_VVT_BARRA_3_PLUS_1 56 +#define trigger_type_e_TT_VVT_BOSCH_QUICK_START 47 +#define trigger_type_e_TT_VVT_JZ 17 +#define trigger_type_e_TT_VVT_MAZDA_SKYACTIV 13 +#define trigger_type_e_TT_VVT_MIATA_NB 43 +#define trigger_type_e_TT_VVT_MITSUBISHI_3A92 62 +#define trigger_type_e_TT_VVT_MITSUBISHI_6G75 72 +#define trigger_type_e_TT_VVT_NISSAN_VQ35 59 +#define trigger_type_e_TT_VVT_TOYOTA_4_1 73 +#define TRIGGER_TYPE_WITH_SECOND_WHEEL trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64 +#define TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 +#define TRIGGER_WITH_SYNC "isSynchronizationNeeded" +#define TRIGGERS_FILE_NAME "triggers.txt" +#define TriggerWheel_T_PRIMARY 0 +#define TriggerWheel_T_SECONDARY 1 +#define TRIM_SIZE 4 +#define TS_BLOCK_READ_TIMEOUT 300 +#define TS_BURN_COMMAND 'B' +#define TS_BURN_COMMAND_char B +#define TS_CHUNK_WRITE_COMMAND 'C' +#define TS_CHUNK_WRITE_COMMAND_char C +#define ts_command_e_TS_BENCH_CATEGORY 22 +#define ts_command_e_TS_CLEAR_WARNINGS 17 +#define ts_command_e_TS_COMMAND_1 1 +#define ts_command_e_TS_COMMAND_11 11 +#define ts_command_e_TS_COMMAND_12 12 +#define ts_command_e_TS_COMMAND_13 13 +#define ts_command_e_TS_COMMAND_14 14 +#define ts_command_e_TS_COMMAND_15 15 +#define ts_command_e_TS_COMMAND_16 16 +#define ts_command_e_TS_COMMAND_4 4 +#define ts_command_e_TS_COMMAND_5 5 +#define ts_command_e_TS_COMMAND_9 9 +#define ts_command_e_TS_DEBUG_MODE 0 +#define ts_command_e_TS_GRAB_PEDAL_UP 6 +#define ts_command_e_TS_GRAB_PEDAL_WOT 7 +#define ts_command_e_TS_GRAB_TPS_CLOSED 2 +#define ts_command_e_TS_GRAB_TPS_WOT 3 +#define ts_command_e_TS_IGNITION_CATEGORY 18 +#define ts_command_e_TS_INJECTOR_CATEGORY 19 +#define ts_command_e_TS_LUA_OUTPUT_CATEGORY 32 +#define ts_command_e_TS_RESET_TLE8888 8 +#define ts_command_e_TS_SET_DEFAULT_ENGINE 31 +#define ts_command_e_TS_SET_ENGINE_TYPE 30 +#define ts_command_e_TS_SOLENOID_CATEGORY 25 +#define ts_command_e_TS_UNUSED_23 23 +#define ts_command_e_TS_UNUSED_24 24 +#define ts_command_e_TS_UNUSED_26 26 +#define ts_command_e_TS_UNUSED_27 27 +#define ts_command_e_TS_UNUSED_28 28 +#define ts_command_e_TS_UNUSED_29 29 +#define ts_command_e_TS_WIDEBAND 21 +#define ts_command_e_TS_WRITE_FLASH 10 +#define ts_command_e_TS_X14 20 +#define TS_COMMAND_F 'F' +#define TS_COMMAND_F_char F +#define TS_COMPOSITE_DISABLE 2 +#define TS_COMPOSITE_ENABLE 1 +#define TS_COMPOSITE_READ 3 +#define TS_CRC_CHECK_COMMAND 'k' +#define TS_CRC_CHECK_COMMAND_char k +#define TS_EXECUTE 'E' +#define TS_EXECUTE_char E +#define TS_FILE_VERSION 20210312 +#define TS_FILE_VERSION_OFFSET 124 +#define TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY '8' +#define TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY_char 8 +#define TS_GET_CONFIG_ERROR 'e' +#define TS_GET_CONFIG_ERROR_char e +#define TS_GET_FIRMWARE_VERSION 'V' +#define TS_GET_FIRMWARE_VERSION_char V +#define TS_GET_OUTPUTS_SIZE '4' +#define TS_GET_OUTPUTS_SIZE_char 4 +#define TS_GET_PROTOCOL_VERSION_COMMAND_F 'F' +#define TS_GET_PROTOCOL_VERSION_COMMAND_F_char F +#define TS_GET_SCATTERED_GET_COMMAND '9' +#define TS_GET_SCATTERED_GET_COMMAND_char 9 +#define TS_GET_TEXT 'G' +#define TS_GET_TEXT_char G +#define TS_HELLO_COMMAND 'S' +#define TS_HELLO_COMMAND_char S +#define TS_IO_TEST_COMMAND 'Z' +#define TS_IO_TEST_COMMAND_char Z +#define TS_ONLINE_PROTOCOL 'z' +#define TS_ONLINE_PROTOCOL_char z +#define TS_OUTPUT_COMMAND 'O' +#define TS_OUTPUT_COMMAND_char O +#define TS_PAGE_COMMAND 'P' +#define TS_PAGE_COMMAND_char P +#define TS_PERF_TRACE_BEGIN '_' +#define TS_PERF_TRACE_BEGIN_char _ +#define TS_PERF_TRACE_GET_BUFFER 'b' +#define TS_PERF_TRACE_GET_BUFFER_char b +#define TS_PROTOCOL "001" +#define TS_QUERY_COMMAND 'Q' +#define TS_QUERY_COMMAND_char Q +#define TS_READ_COMMAND 'R' +#define TS_READ_COMMAND_char R +#define TS_RESPONSE_BURN_OK 4 +#define TS_RESPONSE_COMMAND_OK 7 +#define TS_RESPONSE_CRC_FAILURE 0x82 +#define TS_RESPONSE_FRAMING_ERROR 0x8D +#define TS_RESPONSE_OK 0 +#define TS_RESPONSE_OUT_OF_RANGE 0x84 +#define TS_RESPONSE_UNDERRUN 0x80 +#define TS_RESPONSE_UNRECOGNIZED_COMMAND 0x83 +#define TS_SET_LOGGER_SWITCH 'l' +#define TS_SET_LOGGER_SWITCH_char l +#define ts_show_analog_divider false +#define ts_show_auxserial_pins true +#define ts_show_can2 true +#define ts_show_can_pins true +#define ts_show_clt_iat_pullup true +#define ts_show_critical_led false +#define ts_show_egt false +#define ts_show_etb true +#define ts_show_etb_pins true +#define ts_show_full_pinout true +#define ts_show_hardware_simulator true +#define ts_show_ignitionPinMode true +#define ts_show_injectionPinMode true +#define ts_show_joystick true +#define ts_show_lcd true +#define ts_show_main_relay true +#define ts_show_main_relay_microRusEFI_message false +#define ts_show_sd_card true +#define ts_show_sd_pins false +#define ts_show_software_knock false +#define ts_show_spi true +#define ts_show_trigger_comparator false +#define ts_show_tunerstudio_port false +#define ts_show_vbatt true +#define ts_show_vr_threshold_2 true +#define ts_show_vr_threshold_all true +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.subaru_eg33_f7.3048760128" +#define TS_SINGLE_WRITE_COMMAND 'W' +#define TS_SINGLE_WRITE_COMMAND_char W +#define TS_TEST_COMMAND 't' +#define TS_TEST_COMMAND_char t +#define TS_TOTAL_OUTPUT_SIZE 1356 +#define TS_TRIGGER_SCOPE_CHANNEL_1_NAME "Channel 1" +#define TS_TRIGGER_SCOPE_CHANNEL_2_NAME "Channel 2" +#define TS_TRIGGER_SCOPE_DISABLE 5 +#define TS_TRIGGER_SCOPE_ENABLE 4 +#define TS_TRIGGER_SCOPE_READ 6 +#define TsCalMode_EtbKd 5 +#define TsCalMode_EtbKi 4 +#define TsCalMode_EtbKp 3 +#define TsCalMode_None 0 +#define TsCalMode_PedalMax 13 +#define TsCalMode_PedalMin 12 +#define TsCalMode_Tps1Max 1 +#define TsCalMode_Tps1Min 2 +#define TsCalMode_Tps1SecondaryMax 6 +#define TsCalMode_Tps1SecondaryMin 7 +#define TsCalMode_Tps2Max 8 +#define TsCalMode_Tps2Min 9 +#define TsCalMode_Tps2SecondaryMax 10 +#define TsCalMode_Tps2SecondaryMin 11 +#define uart_device_e_auto_enum 0="UART_NONE",1="UART_DEVICE_1",2="UART_DEVICE_2",3="UART_DEVICE_3",4="UART_DEVICE_4" +#define uart_device_e_UART_DEVICE_1 1 +#define uart_device_e_UART_DEVICE_2 2 +#define uart_device_e_UART_DEVICE_3 3 +#define uart_device_e_UART_DEVICE_4 4 +#define uart_device_e_UART_NONE 0 +#define VBAT_INJECTOR_CURVE_SIZE 8 +#define VE_BLEND_COUNT 4 +#define ve_override_e_auto_enum 0="VE_None",1="VE_MAP",2="VE_TPS" +#define ve_override_e_enum "None", "MAP", "TPS" +#define ve_override_e_VE_MAP 1 +#define ve_override_e_VE_None 0 +#define ve_override_e_VE_TPS 2 +#define VEHICLE_INFO_SIZE 32 +#define VIN_NUMBER_SIZE 17 +#define VM_VVT_INACTIVE 0 +#define VOLTAGE_1_BYTE_PACKING_DIV 0.02 +#define VR_THRESHOLD_COUNT 2 +#define vr_threshold_s_size 16 +#define vvt_mode_e_auto_enum 0="VVT_INACTIVE",2="VVT_2JZ",8="VVT_BARRA_3_PLUS_1",5="VVT_BOSCH_QUICK_START",4="VVT_FIRST_HALF",7="VVT_FORD_ST170",16="VVT_HONDA_K_EXHAUST",10="VVT_HONDA_K_INTAKE",13="VVT_MAP_V_TWIN",15="VVT_MAZDA_SKYACTIV",3="VVT_MIATA_NB",12="VVT_MITSUBISHI_3A92",18="VVT_MITSUBISHI_4G63",17="VVT_MITSUBISHI_4G9x",14="VVT_MITSUBISHI_6G75",11="VVT_NISSAN_MR",9="VVT_NISSAN_VQ",1="VVT_SECOND_HALF",6="VVT_TOYOTA_4_1" +#define vvt_mode_e_enum "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" +#define vvt_mode_e_VVT_2JZ 2 +#define vvt_mode_e_VVT_BARRA_3_PLUS_1 8 +#define vvt_mode_e_VVT_BOSCH_QUICK_START 5 +#define vvt_mode_e_VVT_FIRST_HALF 4 +#define vvt_mode_e_VVT_FORD_ST170 7 +#define vvt_mode_e_VVT_HONDA_K_EXHAUST 16 +#define vvt_mode_e_VVT_HONDA_K_INTAKE 10 +#define vvt_mode_e_VVT_INACTIVE 0 +#define vvt_mode_e_VVT_MAP_V_TWIN 13 +#define vvt_mode_e_VVT_MAZDA_SKYACTIV 15 +#define vvt_mode_e_VVT_MIATA_NB 3 +#define vvt_mode_e_VVT_MITSUBISHI_3A92 12 +#define vvt_mode_e_VVT_MITSUBISHI_4G63 18 +#define vvt_mode_e_VVT_MITSUBISHI_4G9x 17 +#define vvt_mode_e_VVT_MITSUBISHI_6G75 14 +#define vvt_mode_e_VVT_NISSAN_MR 11 +#define vvt_mode_e_VVT_NISSAN_VQ 9 +#define vvt_mode_e_VVT_SECOND_HALF 1 +#define vvt_mode_e_VVT_TOYOTA_4_1 6 +#define WWAE_TABLE_SIZE 8 diff --git a/firmware/console/binary/generated/total_live_data_generated.h b/firmware/console/binary/generated/total_live_data_generated.h new file mode 100644 index 0000000000..9ad1b48bce --- /dev/null +++ b/firmware/console/binary/generated/total_live_data_generated.h @@ -0,0 +1,2 @@ +// generated by gen_live_documentation.sh / LiveDataProcessor.java +#define TS_TOTAL_OUTPUT_SIZE 1356 \ No newline at end of file diff --git a/firmware/console/binary/output_channels_generated.h b/firmware/console/binary/output_channels_generated.h index 7a444595f6..0f83a29508 100644 --- a/firmware/console/binary/output_channels_generated.h +++ b/firmware/console/binary/output_channels_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sun Feb 19 03:53:00 UTC 2023 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Tue Feb 21 11:00:43 PST 2023 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -103,34 +103,34 @@ struct output_channels_s { bool isPedalError : 1 {}; /** offset 0 bit 22 */ - bool isKnockChipOk : 1 {}; - /** - offset 0 bit 23 */ bool launchTriggered : 1 {}; /** - offset 0 bit 24 */ + offset 0 bit 23 */ bool isTps2Error : 1 {}; /** - offset 0 bit 25 */ + offset 0 bit 24 */ bool isIdleClosedLoop : 1 {}; /** + offset 0 bit 25 */ + bool unusedBit_25_25 : 1 {}; + /** offset 0 bit 26 */ - bool unusedBit_26_26 : 1 {}; + bool unusedBit_25_26 : 1 {}; /** offset 0 bit 27 */ - bool unusedBit_26_27 : 1 {}; + bool unusedBit_25_27 : 1 {}; /** offset 0 bit 28 */ - bool unusedBit_26_28 : 1 {}; + bool unusedBit_25_28 : 1 {}; /** offset 0 bit 29 */ - bool unusedBit_26_29 : 1 {}; + bool unusedBit_25_29 : 1 {}; /** offset 0 bit 30 */ - bool unusedBit_26_30 : 1 {}; + bool unusedBit_25_30 : 1 {}; /** offset 0 bit 31 */ - bool unusedBit_26_31 : 1 {}; + bool unusedBit_25_31 : 1 {}; /** * @@GAUGE_NAME_RPM@@ RPM @@ -454,24 +454,25 @@ struct output_channels_s { V * offset 116 */ - scaled_channel rawIdlePositionSensor = (int16_t)0; - /** - V - * offset 118 - */ scaled_channel rawWastegatePosition = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_X@@ G - * offset 120 + * offset 118 */ scaled_channel accelerationX = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_Y@@ G - * offset 122 + * offset 120 */ scaled_channel accelerationY = (int16_t)0; + /** + * need 4 byte alignment + units + * offset 122 + */ + uint8_t alignmentFill_at_122[2]; /** * offset 124 */ @@ -652,197 +653,197 @@ struct output_channels_s { * offset 252 */ scaled_channel wastegatePositionSensor = (int16_t)0; - /** - * @@GAUGE_NAME_IDLE_POSITION@@ - % - * offset 254 - */ - scaled_channel idlePositionSensor = (int16_t)0; /** V - * offset 256 + * offset 254 */ scaled_channel rawLowFuelPressure = (int16_t)0; /** V - * offset 258 + * offset 256 */ scaled_channel rawHighFuelPressure = (int16_t)0; /** * @@GAUGE_NAME_FUEL_PRESSURE_LOW@@ kpa - * offset 260 + * offset 258 */ scaled_channel lowFuelPressure = (int16_t)0; /** * @@GAUGE_NAME_FUEL_PRESSURE_HIGH@@ bar - * offset 262 + * offset 260 */ scaled_channel highFuelPressure = (int16_t)0; /** * @@GAUGE_NAME_AFR@@ AFR - * offset 264 + * offset 262 */ scaled_channel AFRValue = (uint16_t)0; /** * Vss Accel m/s2 - * offset 266 + * offset 264 */ scaled_channel VssAcceleration = (uint16_t)0; /** * @@GAUGE_NAME_LAMBDA2@@ - * offset 268 + * offset 266 */ scaled_channel lambdaValue2 = (uint16_t)0; /** * @@GAUGE_NAME_AFR2@@ AFR - * offset 270 + * offset 268 */ scaled_channel AFRValue2 = (uint16_t)0; /** * @@GAUGE_NAME_VVT_B1E@@ deg - * offset 272 + * offset 270 */ scaled_channel vvtPositionB1E = (int16_t)0; /** * @@GAUGE_NAME_VVT_B2I@@ deg - * offset 274 + * offset 272 */ scaled_channel vvtPositionB2I = (int16_t)0; /** * @@GAUGE_NAME_VVT_B2E@@ deg - * offset 276 + * offset 274 */ scaled_channel vvtPositionB2E = (int16_t)0; /** % - * offset 278 + * offset 276 */ scaled_channel fuelPidCorrection[2]; /** V - * offset 282 + * offset 280 */ scaled_channel rawTps1Secondary = (int16_t)0; /** V - * offset 284 + * offset 282 */ scaled_channel rawTps2Primary = (int16_t)0; /** V - * offset 286 + * offset 284 */ scaled_channel rawTps2Secondary = (int16_t)0; /** * @@GAUGE_NAME_KNOCK_COUNTER@@ - * offset 288 + * offset 286 */ uint16_t knockCount = (uint16_t)0; /** * @@GAUGE_NAME_ACCEL_Z@@ G - * offset 290 + * offset 288 */ scaled_channel accelerationZ = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_ROLL@@ G - * offset 292 + * offset 290 */ scaled_channel accelerationRoll = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_YAW@@ G - * offset 294 + * offset 292 */ scaled_channel accelerationYaw = (int16_t)0; /** deg - * offset 296 + * offset 294 */ int8_t vvtTargets[4]; /** * @@GAUGE_NAME_TURBO_SPEED@@ hz - * offset 300 + * offset 298 */ uint16_t turboSpeed = (uint16_t)0; /** % - * offset 302 + * offset 300 */ scaled_channel tps1Split = (int16_t)0; /** % - * offset 304 + * offset 302 */ scaled_channel tps2Split = (int16_t)0; /** % - * offset 306 + * offset 304 */ scaled_channel tps12Split = (int16_t)0; /** % - * offset 308 + * offset 306 */ scaled_channel accPedalSplit = (int16_t)0; /** * Spark Cut Code code - * offset 310 + * offset 308 */ int8_t sparkCutReason = (int8_t)0; /** * Fuel Cut Code code - * offset 311 + * offset 309 */ int8_t fuelCutReason = (int8_t)0; /** * @@GAUGE_NAME_AIR_FLOW_ESTIMATE@@ kg/h - * offset 312 + * offset 310 */ scaled_channel mafEstimate = (uint16_t)0; /** rpm - * offset 314 + * offset 312 */ uint16_t instantRpm = (uint16_t)0; /** counter - * offset 316 + * offset 314 */ uint16_t systemEventReuse = (uint16_t)0; /** V - * offset 318 + * offset 316 */ scaled_channel rawMap = (uint16_t)0; /** V - * offset 320 + * offset 318 */ scaled_channel rawAfr = (uint16_t)0; /** % - * offset 322 + * offset 320 */ uint8_t tpsAccelFrom = (uint8_t)0; /** % - * offset 323 + * offset 321 */ uint8_t tpsAccelTo = (uint8_t)0; + /** + * need 4 byte alignment + units + * offset 322 + */ + uint8_t alignmentFill_at_322[2]; /** * offset 324 */ @@ -1383,4 +1384,4 @@ struct output_channels_s { static_assert(sizeof(output_channels_s) == 780); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sun Feb 19 03:53:00 UTC 2023 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Tue Feb 21 11:00:43 PST 2023 diff --git a/firmware/console/binary_log/log_fields_generated.h b/firmware/console/binary_log/log_fields_generated.h index 2fc99385a6..387870886e 100644 --- a/firmware/console/binary_log/log_fields_generated.h +++ b/firmware/console/binary_log/log_fields_generated.h @@ -53,7 +53,6 @@ static constexpr LogField fields[] = { {engine->outputChannels.seconds, "Uptime", "sec", 0}, {engine->outputChannels.engineMode, "Engine Mode", "em", 0}, {engine->outputChannels.firmwareVersion, "firmware", "version_f", 0}, - {engine->outputChannels.rawIdlePositionSensor, "rawIdlePositionSensor", "V", 3}, {engine->outputChannels.rawWastegatePosition, "rawWastegatePosition", "V", 3}, {engine->outputChannels.accelerationX, "Acceleration: X", "G", 2}, {engine->outputChannels.accelerationY, "Acceleration: Y", "G", 2}, @@ -118,7 +117,6 @@ static constexpr LogField fields[] = { {engine->outputChannels.tcuDesiredGear, "Desired Gear", "gear", 0}, {engine->outputChannels.flexPercent, "Flex Ethanol %", "%", 1}, {engine->outputChannels.wastegatePositionSensor, "Wastegate position sensor", "%", 2}, - {engine->outputChannels.idlePositionSensor, "Idle position sensor", "%", 2}, {engine->outputChannels.rawLowFuelPressure, "rawLowFuelPressure", "V", 3}, {engine->outputChannels.rawHighFuelPressure, "rawHighFuelPressure", "V", 3}, {engine->outputChannels.lowFuelPressure, "Fuel pressure (low)", "kpa", 0}, diff --git a/firmware/controllers/algo/auto_generated_commonenum.cpp b/firmware/controllers/algo/auto_generated_commonenum.cpp index 47502c5c98..c83cab37e2 100644 --- a/firmware/controllers/algo/auto_generated_commonenum.cpp +++ b/firmware/controllers/algo/auto_generated_commonenum.cpp @@ -1,6 +1,6 @@ #include "global.h" #include "rusefi_enums.h" -// was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Mon Feb 20 16:55:30 UTC 2023 +// was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Tue Feb 21 11:00:43 PST 2023 // see also gen_config_and_enums.bat @@ -296,8 +296,6 @@ case W202: } const char *getDc_function_e(dc_function_e value){ switch(value) { -case DC_IdleValve: - return "DC_IdleValve"; case DC_None: return "DC_None"; case DC_Throttle1: @@ -309,17 +307,6 @@ case DC_Wastegate: } return NULL; } -const char *getDisplay_mode_e(display_mode_e value){ -switch(value) { -case DM_HD44780: - return "DM_HD44780"; -case DM_HD44780_OVER_PCF8574: - return "DM_HD44780_OVER_PCF8574"; -case DM_NONE: - return "DM_NONE"; - } - return NULL; -} const char *getEgo_sensor_e(ego_sensor_e value){ switch(value) { case ES_14Point7_Free: @@ -332,8 +319,6 @@ case ES_Custom: return "ES_Custom"; case ES_Innovate_MTX_L: return "ES_Innovate_MTX_L"; -case ES_NarrowBand: - return "ES_NarrowBand"; case ES_PLX: return "ES_PLX"; } diff --git a/firmware/controllers/algo/auto_generated_commonenum.h b/firmware/controllers/algo/auto_generated_commonenum.h index e0b74288a8..125aa7e285 100644 --- a/firmware/controllers/algo/auto_generated_commonenum.h +++ b/firmware/controllers/algo/auto_generated_commonenum.h @@ -1,4 +1,4 @@ -// was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Sun Feb 19 03:52:58 UTC 2023 +// was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Tue Feb 21 11:00:43 PST 2023 // see also gen_config_and_enums.bat @@ -37,7 +37,6 @@ const char *getCan_baudrate_e(can_baudrate_e value); const char *getCan_nbc_e(can_nbc_e value); const char *getCan_vss_nbc_e(can_vss_nbc_e value); const char *getDc_function_e(dc_function_e value); -const char *getDisplay_mode_e(display_mode_e value); const char *getEgo_sensor_e(ego_sensor_e value); const char *getEngine_load_mode_e(engine_load_mode_e value); const char *getGear_e(gear_e value); diff --git a/firmware/controllers/algo/auto_generated_enginetypes.cpp b/firmware/controllers/algo/auto_generated_enginetypes.cpp index fdd221a425..102ca6d999 100644 --- a/firmware/controllers/algo/auto_generated_enginetypes.cpp +++ b/firmware/controllers/algo/auto_generated_enginetypes.cpp @@ -1,6 +1,6 @@ #include "global.h" #include "engine_types.h" -// was generated automatically by rusEFI tool from engine_types.h // by enum2string.jar tool on Mon Feb 20 21:53:12 UTC 2023 +// was generated automatically by rusEFI tool from engine_types.h // by enum2string.jar tool on Tue Feb 21 11:00:43 PST 2023 // see also gen_config_and_enums.bat @@ -56,6 +56,8 @@ case DBG_20: return "DBG_20"; case DBG_24: return "DBG_24"; +case DBG_25: + return "DBG_25"; case DBG_26: return "DBG_26"; case DBG_29: @@ -86,8 +88,6 @@ case DBG_ANALOG_INPUTS2: return "DBG_ANALOG_INPUTS2"; case DBG_BENCH_TEST: return "DBG_BENCH_TEST"; -case DBG_CJ125: - return "DBG_CJ125"; case DBG_COMPOSITE_LOG: return "DBG_COMPOSITE_LOG"; case DBG_DWELL_METRIC: @@ -567,6 +567,8 @@ case TS_SOLENOID_CATEGORY: return "TS_SOLENOID_CATEGORY"; case TS_UNUSED_23: return "TS_UNUSED_23"; +case TS_UNUSED_24: + return "TS_UNUSED_24"; case TS_UNUSED_26: return "TS_UNUSED_26"; case TS_UNUSED_27: @@ -575,8 +577,6 @@ case TS_UNUSED_28: return "TS_UNUSED_28"; case TS_UNUSED_29: return "TS_UNUSED_29"; -case TS_UNUSED_CJ125_CALIB: - return "TS_UNUSED_CJ125_CALIB"; case TS_WIDEBAND: return "TS_WIDEBAND"; case TS_WRITE_FLASH: diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 2dcfdca424..14a61a9063 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Feb 20 21:09:11 PST 2023 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Feb 21 11:00:58 PST 2023 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -130,8 +130,7 @@ struct cranking_parameters_s { */ float baseFuel; /** - * This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. - * set cranking_rpm X + * This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. RPM * offset 4 */ @@ -425,8 +424,6 @@ struct injector_s { */ float flow; /** - * set_flat_injector_lag LAG - * set_injector_lag VOLTAGE LAG volts * offset 4 */ @@ -475,7 +472,6 @@ static_assert(sizeof(specs_s) == 12); struct trigger_config_s { /** * https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers - * set trigger_type X * offset 0 */ trigger_type_e type; @@ -614,7 +610,6 @@ static_assert(sizeof(vr_threshold_s) == 16); struct engine_configuration_s { /** * http://rusefi.com/wiki/index.php?title=Manual:Engine_Type - * set engine_type X * offset 0 */ engine_type_e engineType; @@ -631,14 +626,12 @@ struct engine_configuration_s { */ uint16_t launchRpm; /** - * set rpm_hard_limit X rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm - * set engineSnifferRpmThreshold X RPM * offset 10 */ @@ -728,99 +721,92 @@ struct engine_configuration_s { * Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines). offset 120 bit 8 */ bool enableTrailingSparks : 1 {}; - /** - * enable cj125verbose/disable cj125verbose - offset 120 bit 9 */ - bool isCJ125Verbose : 1 {}; - /** - * Is your UA CJ125 output wired to MCU via resistor divider? Ua can go over 3.3v but only at lambda >3, i.e very lean AFR above 44.1 - * When exposed to free air and 17x gain, Ua will be 4.17 volt - offset 120 bit 10 */ - bool cj125isUaDivided : 1 {}; - /** - offset 120 bit 11 */ - bool cj125isLsu49 : 1 {}; /** * TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. - offset 120 bit 12 */ + offset 120 bit 9 */ bool etb_use_two_wires : 1 {}; /** * 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. - offset 120 bit 13 */ + offset 120 bit 10 */ bool isDoubleSolenoidIdle : 1 {}; /** - offset 120 bit 14 */ + offset 120 bit 11 */ bool useEeprom : 1 {}; /** - * Is your UR CJ125 output wired to MCU via resistor divider? - * Looks like 3v range should be enough, divider generally not needed. - offset 120 bit 15 */ - bool cj125isUrDivided : 1 {}; - /** - * Switch between Industrial and Cic PID implementation - offset 120 bit 16 */ - bool useCicPidForIdle : 1 {}; - /** - offset 120 bit 17 */ + offset 120 bit 12 */ bool useTLE8888_cranking_hack : 1 {}; /** - offset 120 bit 18 */ + offset 120 bit 13 */ bool kickStartCranking : 1 {}; /** * This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration). - offset 120 bit 19 */ + offset 120 bit 14 */ bool useSeparateIdleTablesForCrankingTaper : 1 {}; /** - offset 120 bit 20 */ + offset 120 bit 15 */ bool launchControlEnabled : 1 {}; /** * "Detect double trigger edges" - offset 120 bit 21 */ + offset 120 bit 16 */ bool doNotFilterTriggerEdgeNoise : 1 {}; /** - offset 120 bit 22 */ + offset 120 bit 17 */ bool antiLagEnabled : 1 {}; /** * For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table). - offset 120 bit 23 */ + offset 120 bit 18 */ bool useRunningMathForCranking : 1 {}; /** * Shall we display real life signal or just the part consumed by trigger decoder. * Applies to both trigger and cam/vvt input. * * enable logic_level_trigger - offset 120 bit 24 */ + offset 120 bit 19 */ bool displayLogicLevelsInEngineSniffer : 1 {}; /** - offset 120 bit 25 */ + offset 120 bit 20 */ bool useTLE8888_stepper : 1 {}; /** * If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS. - offset 120 bit 26 */ + offset 120 bit 21 */ bool enableMapEstimationTableFallback : 1 {}; /** - offset 120 bit 27 */ + offset 120 bit 22 */ bool usescriptTableForCanSniffingFiltering : 1 {}; /** * Print incoming and outgoing first bus CAN messages in rusEFI console - offset 120 bit 28 */ + offset 120 bit 23 */ bool verboseCan : 1 {}; /** * Experimental setting that will cause a misfire * DO NOT ENABLE. - offset 120 bit 29 */ + offset 120 bit 24 */ bool artificialTestMisfire : 1 {}; /** * 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. - offset 120 bit 30 */ + offset 120 bit 25 */ bool useFordRedundantPps : 1 {}; /** + offset 120 bit 26 */ + bool unusedBit_40_26 : 1 {}; + /** + offset 120 bit 27 */ + bool unusedBit_40_27 : 1 {}; + /** + offset 120 bit 28 */ + bool unusedBit_40_28 : 1 {}; + /** + offset 120 bit 29 */ + bool unusedBit_40_29 : 1 {}; + /** + offset 120 bit 30 */ + bool unusedBit_40_30 : 1 {}; + /** offset 120 bit 31 */ - bool unusedBit_45_31 : 1 {}; + bool unusedBit_40_31 : 1 {}; /** * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel - * set tps_min X ADC * offset 124 */ @@ -828,7 +814,6 @@ struct engine_configuration_s { /** * Full throttle. * See also tps1_1AdcChannel - * set tps_max X ADC * offset 126 */ @@ -888,29 +873,21 @@ struct engine_configuration_s { * offset 352 */ int launchTimingRetard; - /** - * value '6' for 8MHz hw osc - * read hip9011 datasheet for details - * todo split into two bit fields - integer - * offset 356 - */ - int hip9011PrescalerAndSDO; /** * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override kHz - * offset 360 + * offset 356 */ float knockBandCustom; /** - * offset 364 + * offset 360 */ specs_s specs; /** * Cylinder diameter in mm. mm - * offset 376 + * offset 372 */ float cylinderBore; /** @@ -918,57 +895,54 @@ struct engine_configuration_s { * Alpha-N means drive by TPS commonly only used for NA engines * Speed Density requires MAP sensor and is the default choice for may installs * MAF air charge is a cylinder filling based method that uses a mass air flow sensor. - * offset 380 + * offset 376 */ engine_load_mode_e fuelAlgorithm; /** % - * offset 381 + * offset 377 */ uint8_t ALSMaxTPS; /** - * offset 382 + * offset 378 */ Gpio criticalLedPin; /** * This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous". - * offset 384 + * offset 380 */ injection_mode_e crankingInjectionMode; /** - * 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". - * set injection_mode X - * See also twoWireBatchInjection - * offset 385 + * 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". + * offset 381 */ injection_mode_e injectionMode; /** * Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. - * offset 386 + * offset 382 */ uint16_t boostControlMinRpm; /** * Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. - * offset 388 + * offset 384 */ uint8_t boostControlMinTps; /** * Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. - * offset 389 + * offset 385 */ uint8_t boostControlMinMap; /** * need 4 byte alignment units - * offset 390 + * offset 386 */ - uint8_t alignmentFill_at_390[2]; + uint8_t alignmentFill_at_386[2]; /** * Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines. * There is tapering towards running timing advance - * set cranking_timing_angle X deg - * offset 392 + * offset 388 */ angle_t crankingTimingAngle; /** @@ -976,496 +950,410 @@ struct engine_configuration_s { * Individual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode * Wasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder * Two distributors = A pair of distributors, found on some BMW, Toyota and other engines - * set ignition_mode X - * offset 396 + * offset 392 */ ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen count - * offset 397 + * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). kph - * offset 398 + * offset 394 */ uint8_t maxIdleVss; + /** + * need 4 byte alignment + units + * offset 395 + */ + uint8_t alignmentFill_at_395[1]; + /** + * 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. + kPa + * offset 396 + */ + uint16_t minOilPressureAfterStart; + /** + * 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). + * offset 398 + */ + timing_mode_e timingMode; /** * need 4 byte alignment units * offset 399 */ uint8_t alignmentFill_at_399[1]; - /** - * 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. - kPa - * offset 400 - */ - uint16_t minOilPressureAfterStart; - /** - * 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). - * offset 402 - */ - timing_mode_e timingMode; - /** - * need 4 byte alignment - units - * offset 403 - */ - uint8_t alignmentFill_at_403[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. RPM - * offset 404 + * offset 400 */ angle_t fixedModeTiming; /** * Angle between Top Dead Center (TDC) and the first trigger event. * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. - * set global_trigger_offset_angle X deg btdc - * offset 408 + * offset 404 */ angle_t globalTriggerAngleOffset; /** * 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. coef - * offset 412 + * offset 408 */ float analogInputDividerCoefficient; /** * 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. coef - * offset 416 + * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius deg C - * offset 420 + * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius deg C - * offset 424 + * offset 420 */ float fanOffTemperature; /** * 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. revs/km - * offset 428 + * offset 424 */ float driveWheelRevPerKm; /** - * set can_mode X - * offset 432 + * offset 428 */ can_nbc_e canNbcType; /** * need 4 byte alignment units - * offset 433 + * offset 429 */ - uint8_t alignmentFill_at_433[3]; + uint8_t alignmentFill_at_429[3]; /** * CANbus thread period in ms ms - * offset 436 + * offset 432 */ int canSleepPeriodMs; /** - * offset 440 + * offset 436 */ - display_mode_e displayMode; + uint8_t unused440; /** * need 4 byte alignment units - * offset 441 + * offset 437 */ - uint8_t alignmentFill_at_441[3]; + uint8_t alignmentFill_at_437[3]; /** index - * offset 444 + * offset 440 */ int byFirmwareVersion; /** - index - * offset 448 - */ - int HD44780width; - /** - index - * offset 452 - */ - int HD44780height; - /** - * First throttle body, first sensor. See also pedalPositionAdcChannel - * offset 456 + * First throttle body, first sensor + * offset 444 */ adc_channel_e tps1_1AdcChannel; /** * 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. - * offset 457 + * offset 445 */ adc_channel_e vbattAdcChannel; /** * 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. - * offset 458 + * offset 446 */ adc_channel_e fuelLevelSensor; /** - * Second throttle body position sensor, single channel so far - * set_analog_input_pin tps2 X - * offset 459 + * Second throttle body, first sensor + * offset 447 */ adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value x - * offset 460 + * offset 448 */ float idle_derivativeFilterLoss; /** * just a temporary solution angle - * offset 464 + * offset 452 */ int trailingSparkAngle; /** - * offset 468 + * offset 456 */ trigger_config_s trigger; /** * Extra air taper amount % - * offset 480 + * offset 468 */ float airByRpmTaper; - /** - * offset 484 - */ - spi_device_e hip9011SpiDevice; /** * Single value to be used in event of a failed MAP sensor * This value is only used for speed density fueling calculations. kPa - * offset 485 + * offset 472 */ uint8_t failedMapFallback; /** * 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. % - * offset 486 + * offset 473 */ uint8_t boostControlSafeDutyCycle; /** - * offset 487 + * offset 474 */ adc_channel_e mafAdcChannel; /** - * set global_fuel_correction X + * need 4 byte alignment + units + * offset 475 + */ + uint8_t alignmentFill_at_475[1]; + /** coef - * offset 488 + * offset 476 */ float globalFuelCorrection; /** volts - * offset 492 + * offset 480 */ float adcVcc; /** Deg - * offset 496 + * offset 484 */ float mapCamDetectionAnglePosition; /** * 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. - * offset 500 + * offset 488 */ brain_input_pin_e camInputs[CAM_INPUTS_COUNT]; /** - * offset 508 + * offset 496 */ afr_sensor_s afr; /** - * Electronic throttle pedal position first channel - * See throttlePedalPositionSecondAdcChannel for second channel - * See also tps1_1AdcChannel - * set_analog_input_pin pps X - * See throttlePedalUpVoltage and throttlePedalWOTVoltage - * offset 528 + * Throttle pedal position first channel + * offset 516 */ adc_channel_e throttlePedalPositionAdcChannel; /** * need 4 byte alignment units - * offset 529 + * offset 517 */ - uint8_t alignmentFill_at_529[1]; + uint8_t alignmentFill_at_517[1]; /** - * offset 530 + * offset 518 */ Gpio tle6240_cs; /** - * offset 532 + * offset 520 */ pin_output_mode_e tle6240_csPinMode; /** * need 4 byte alignment units - * offset 533 + * offset 521 */ - uint8_t alignmentFill_at_533[1]; + uint8_t alignmentFill_at_521[1]; /** * Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata - * offset 534 + * offset 522 */ switch_input_pin_e throttlePedalUpPin; /** * @see hasBaroSensor - * offset 536 + * offset 524 */ air_pressure_sensor_config_s baroSensor; /** - * offset 548 + * offset 536 */ idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode % - * offset 560 + * offset 548 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. % - * offset 564 + * offset 552 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. deg/s - * offset 565 + * offset 553 */ scaled_channel knockRetardReapplyRate; /** * Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync. - * offset 566 + * offset 554 */ engineSyncCam_e engineSyncCam; /** * Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response. - * offset 567 + * offset 555 */ uint8_t vssFilterReciprocal; /** * 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. ratio - * offset 568 + * offset 556 */ scaled_channel vssGearRatio; /** * 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. count - * offset 570 + * offset 558 */ uint8_t vssToothCount; /** * need 4 byte alignment units - * offset 571 + * offset 559 */ - uint8_t alignmentFill_at_571[1]; + uint8_t alignmentFill_at_559[1]; /** - * offset 572 + * offset 560 */ Gpio l9779_cs; /** * need 4 byte alignment units - * offset 574 + * offset 562 */ - uint8_t alignmentFill_at_574[2]; + uint8_t alignmentFill_at_562[2]; /** * Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires) * See also directSelfStimulation (no wires, bypassing input hardware) * rpm X * TODO: rename to triggerSimulatorRpm Rpm - * offset 576 + * offset 564 */ int triggerSimulatorFrequency; /** - * offset 580 + * offset 568 */ output_pin_e injectionPins[MAX_CYLINDER_COUNT]; /** - * offset 604 + * offset 592 */ output_pin_e ignitionPins[MAX_CYLINDER_COUNT]; /** - * offset 628 + * offset 616 */ pin_output_mode_e injectionPinMode; /** - * offset 629 + * offset 617 */ pin_output_mode_e ignitionPinMode; /** - * offset 630 - */ - Gpio HD44780_rs; - /** - * offset 632 - */ - Gpio HD44780_e; - /** - * offset 634 - */ - Gpio HD44780_db4; - /** - * offset 636 - */ - Gpio HD44780_db5; - /** - * offset 638 - */ - Gpio HD44780_db6; - /** - * offset 640 - */ - Gpio HD44780_db7; - /** - * offset 642 - */ - Gpio gps_rx_pin; - /** - * offset 644 - */ - Gpio gps_tx_pin; - /** - * offset 646 + * offset 618 */ output_pin_e fuelPumpPin; /** - * offset 648 + * offset 620 */ pin_output_mode_e fuelPumpPinMode; /** * need 4 byte alignment units - * offset 649 + * offset 621 */ - uint8_t alignmentFill_at_649[1]; + uint8_t alignmentFill_at_621[1]; /** * Check engine light, also malfunction indicator light. Always blinks once on boot. - * offset 650 + * offset 622 */ output_pin_e malfunctionIndicatorPin; /** - * offset 652 + * offset 624 */ pin_output_mode_e malfunctionIndicatorPinMode; /** - * offset 653 + * offset 625 */ pin_output_mode_e fanPinMode; /** - * offset 654 + * offset 626 */ output_pin_e fanPin; /** * Some cars have a switch to indicate that clutch pedal is all the way down - * offset 656 + * offset 628 */ switch_input_pin_e clutchDownPin; /** - * offset 658 + * offset 630 */ output_pin_e alternatorControlPin; /** - * offset 660 + * offset 632 */ pin_output_mode_e alternatorControlPinMode; /** - * offset 661 + * offset 633 */ pin_input_mode_e clutchDownPinMode; /** - * offset 662 - */ - Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT]; - /** - * offset 670 + * offset 634 */ pin_output_mode_e electronicThrottlePin1Mode; /** - * need 4 byte alignment - units - * offset 671 - */ - uint8_t alignmentFill_at_671[1]; - /** - * set_cj125_heater_pin XXX - * offset 672 - */ - Gpio wboHeaterPin; - /** - * set_cj125_cs_pin XXX - * offset 674 - */ - Gpio cj125CsPin; - /** - * offset 676 + * offset 635 */ spi_device_e max31855spiDevice; /** - * need 4 byte alignment - units - * offset 677 - */ - uint8_t alignmentFill_at_677[1]; - /** - * offset 678 + * offset 636 */ Gpio debugTriggerSync; /** - * Digital Potentiometer is used by stock ECU stimulation code - * offset 680 - */ - spi_device_e digitalPotentiometerSpiDevice; - /** - * need 4 byte alignment - units - * offset 681 - */ - uint8_t alignmentFill_at_681[1]; - /** - * offset 682 + * offset 638 */ Gpio mc33972_cs; /** - * offset 684 + * offset 640 */ pin_output_mode_e mc33972_csPinMode; /** * Useful in Research&Development phase - * offset 685 + * offset 641 */ adc_channel_e auxFastSensor1_adcChannel; /** * First throttle body, second sensor. - * offset 686 + * offset 642 */ adc_channel_e tps1_2AdcChannel; /** * Second throttle body, second sensor. - * offset 687 + * offset 643 */ adc_channel_e tps2_2AdcChannel; /** @@ -1473,118 +1361,108 @@ struct engine_configuration_s { * Second channel * See also tps1_1AdcChannel * See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage - * offset 688 + * offset 644 */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** % - * offset 689 + * offset 645 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; /** * AFR, WBO, EGO - whatever you like to call it - * offset 697 + * offset 653 */ ego_sensor_e afr_type; /** * need 4 byte alignment units - * offset 698 + * offset 654 */ - uint8_t alignmentFill_at_698[2]; + uint8_t alignmentFill_at_654[2]; /** * 0.1 is a good default value x - * offset 700 + * offset 656 */ float idle_antiwindupFreq; /** - * offset 704 + * offset 660 */ brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]; /** * 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. us - * offset 708 + * offset 664 */ uint16_t mc33_t_min_boost; /** - * offset 710 - */ - pin_output_mode_e hip9011CsPinMode; - /** - * need 4 byte alignment - units - * offset 711 - */ - uint8_t alignmentFill_at_711[1]; - /** - * offset 712 + * offset 666 */ output_pin_e tachOutputPin; /** - * offset 714 + * offset 668 */ pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment units - * offset 715 + * offset 669 */ - uint8_t alignmentFill_at_715[1]; + uint8_t alignmentFill_at_669[1]; /** - * offset 716 + * offset 670 */ output_pin_e mainRelayPin; /** - * offset 718 + * offset 672 */ Gpio sdCardCsPin; /** * set_can_tx_pin X - * offset 720 + * offset 674 */ Gpio canTxPin; /** * set_can_rx_pin X - * offset 722 + * offset 676 */ Gpio canRxPin; /** - * offset 724 + * offset 678 */ pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active % - * offset 725 + * offset 679 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. ratio - * offset 726 + * offset 680 */ scaled_channel finalGearRatio; /** - * offset 728 + * offset 682 */ brain_input_pin_e tcuInputSpeedSensorPin; /** - * offset 730 + * offset 684 */ uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment units - * offset 731 + * offset 685 */ - uint8_t alignmentFill_at_731[1]; + uint8_t alignmentFill_at_685[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! mv - * offset 732 + * offset 686 */ uint16_t wastegatePositionMin; /** @@ -1592,2275 +1470,2180 @@ struct engine_configuration_s { * You probably don't have one of these! * 1 volt = 1000 units mv - * offset 734 + * offset 688 */ uint16_t wastegatePositionMax; /** - * Voltage when the idle valve is closed. - * You probably don't have one of these! - mv - * offset 736 + * need 4 byte alignment + units + * offset 690 */ - uint16_t idlePositionMin; - /** - * Voltage when the idle valve is open. - * You probably don't have one of these! - * 1 volt = 1000 units - mv - * offset 738 - */ - uint16_t idlePositionMax; + uint8_t alignmentFill_at_690[2]; /** * Secondary TTL channel baud rate BPs - * offset 740 + * offset 692 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point CR - * offset 744 + * offset 696 */ float compressionRatio; /** * 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. * See also directSelfStimulation which is different. - * offset 748 + * offset 700 */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** g/s - * offset 752 + * offset 704 */ scaled_channel fordInjectorSmallPulseSlope; /** - * offset 754 + * offset 706 */ pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT]; /** - * offset 756 + * offset 708 */ adc_channel_e maf2AdcChannel; /** * need 4 byte alignment units - * offset 757 + * offset 709 */ - uint8_t alignmentFill_at_757[1]; + uint8_t alignmentFill_at_709[1]; /** - * Narrow band o2 heater, not used for CJ125. 'ON' if engine is running, 'OFF' if stopped or cranking. See wboHeaterPin - * offset 758 + * On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking. + * offset 710 */ output_pin_e o2heaterPin; /** - * offset 760 + * offset 712 */ pin_output_mode_e o2heaterPinModeTodO; /** * need 4 byte alignment units - * offset 761 + * offset 713 */ - uint8_t alignmentFill_at_761[3]; + uint8_t alignmentFill_at_713[3]; /** - offset 764 bit 0 */ + offset 716 bit 0 */ bool is_enabled_spi_1 : 1 {}; /** - offset 764 bit 1 */ + offset 716 bit 1 */ bool is_enabled_spi_2 : 1 {}; /** - offset 764 bit 2 */ + offset 716 bit 2 */ bool is_enabled_spi_3 : 1 {}; /** * enable sd/disable sd - offset 764 bit 3 */ + offset 716 bit 3 */ bool isSdCardEnabled : 1 {}; /** * Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format. - offset 764 bit 4 */ + offset 716 bit 4 */ bool rusefiVerbose29b : 1 {}; /** - offset 764 bit 5 */ + offset 716 bit 5 */ bool isEngineControlEnabled : 1 {}; /** - offset 764 bit 6 */ - bool isHip9011Enabled : 1 {}; - /** - offset 764 bit 7 */ + offset 716 bit 6 */ bool isVerboseAlternator : 1 {}; /** - offset 764 bit 8 */ + offset 716 bit 7 */ bool verboseQuad : 1 {}; /** * This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed. - offset 764 bit 9 */ + offset 716 bit 8 */ bool useStepperIdle : 1 {}; /** - offset 764 bit 10 */ + offset 716 bit 9 */ bool enabledStep1Limiter : 1 {}; /** - offset 764 bit 11 */ - bool useTpicAdvancedMode : 1 {}; + offset 716 bit 10 */ + bool unused760b12 : 1 {}; /** - offset 764 bit 12 */ - bool useLcdScreen : 1 {}; - /** - offset 764 bit 13 */ + offset 716 bit 11 */ bool verboseTLE8888 : 1 {}; /** * CAN broadcast using custom rusEFI protocol * enable can_broadcast/disable can_broadcast - offset 764 bit 14 */ + offset 716 bit 12 */ bool enableVerboseCanTx : 1 {}; /** - offset 764 bit 15 */ + offset 716 bit 13 */ bool etb1configured : 1 {}; /** - * enable cj125/disable cj125 - offset 764 bit 16 */ - bool isCJ125Enabled : 1 {}; - /** - offset 764 bit 17 */ + offset 716 bit 14 */ bool etb2configured : 1 {}; /** * Useful for individual intakes - offset 764 bit 18 */ + offset 716 bit 15 */ bool measureMapOnlyInOneCylinder : 1 {}; /** - offset 764 bit 19 */ + offset 716 bit 16 */ bool stepperForceParkingEveryRestart : 1 {}; /** * 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. - offset 764 bit 20 */ + offset 716 bit 17 */ bool isFasterEngineSpinUpEnabled : 1 {}; /** * This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing. - offset 764 bit 21 */ + offset 716 bit 18 */ bool coastingFuelCutEnabled : 1 {}; /** * 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. - offset 764 bit 22 */ + offset 716 bit 19 */ bool useIacTableForCoasting : 1 {}; /** - offset 764 bit 23 */ + offset 716 bit 20 */ bool useNoiselessTriggerDecoder : 1 {}; /** - offset 764 bit 24 */ + offset 716 bit 21 */ bool useIdleTimingPidControl : 1 {}; /** * 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. - offset 764 bit 25 */ + offset 716 bit 22 */ bool disableEtbWhenEngineStopped : 1 {}; /** - offset 764 bit 26 */ + offset 716 bit 23 */ bool is_enabled_spi_4 : 1 {}; /** * Disable the electronic throttle motor and DC idle motor for testing. * This mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle. - offset 764 bit 27 */ + offset 716 bit 24 */ bool pauseEtbControl : 1 {}; /** - offset 764 bit 28 */ + offset 716 bit 25 */ bool alignEngineSnifferAtTDC : 1 {}; /** - offset 764 bit 29 */ + offset 716 bit 26 */ bool unused764b29 : 1 {}; - /** - offset 764 bit 30 */ - bool idleIncrementalPidCic : 1 {}; /** * AEM X-Series or rusEFI Wideband - offset 764 bit 31 */ + offset 716 bit 27 */ bool enableAemXSeries : 1 {}; /** - * offset 768 + offset 716 bit 28 */ + bool unusedBit_211_28 : 1 {}; + /** + offset 716 bit 29 */ + bool unusedBit_211_29 : 1 {}; + /** + offset 716 bit 30 */ + bool unusedBit_211_30 : 1 {}; + /** + offset 716 bit 31 */ + bool unusedBit_211_31 : 1 {}; + /** + * offset 720 */ brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]; /** - * offset 776 + * offset 728 */ pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment units - * offset 777 + * offset 729 */ - uint8_t alignmentFill_at_777[1]; + uint8_t alignmentFill_at_729[3]; /** - * offset 778 - */ - Gpio hip9011CsPin; - /** - * offset 780 - */ - Gpio hip9011IntHoldPin; - /** - * offset 782 - */ - pin_output_mode_e hip9011IntHoldPinMode; - /** - * need 4 byte alignment - units - * offset 783 - */ - uint8_t alignmentFill_at_783[1]; - /** - * offset 784 + * offset 732 */ uint32_t verboseCanBaseAddress; /** * Boost Voltage v - * offset 788 + * offset 736 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. kPa - * offset 789 + * offset 737 */ uint8_t minimumBoostClosedLoopMap; /** * Optional Radiator Fan used with A/C - * offset 790 + * offset 738 */ output_pin_e acFanPin; /** - * offset 792 + * offset 740 */ pin_output_mode_e acFanPinMode; /** - * offset 793 + * offset 741 */ spi_device_e l9779spiDevice; /** volts - * offset 794 + * offset 742 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; /** - * offset 802 + * offset 750 */ imu_type_e imuType; /** multiplier - * offset 803 + * offset 751 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment units - * offset 811 + * offset 759 */ - uint8_t alignmentFill_at_811[1]; + uint8_t alignmentFill_at_759[1]; /** kg - * offset 812 + * offset 760 */ uint16_t vehicleWeight; /** * How far above idle speed do we consider idling? * For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle. RPM - * offset 814 + * offset 762 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. ms - * offset 816 + * offset 764 */ scaled_channel applyNonlinearBelowPulse; /** - * offset 818 + * offset 766 */ Gpio lps25BaroSensorScl; /** - * offset 820 + * offset 768 */ Gpio lps25BaroSensorSda; /** - * offset 822 + * offset 770 */ brain_input_pin_e vehicleSpeedSensorInputPin; /** * Some vehicles have a switch to indicate that clutch pedal is all the way up - * offset 824 + * offset 772 */ switch_input_pin_e clutchUpPin; /** - * offset 826 + * offset 774 */ InjectorNonlinearMode injectorNonlinearMode; /** - * offset 827 + * offset 775 */ pin_input_mode_e clutchUpPinMode; /** - * offset 828 + * offset 776 */ Gpio max31855_cs[EGT_CHANNEL_COUNT]; /** * Continental/GM flex fuel sensor, 50-150hz type - * offset 844 + * offset 792 */ brain_input_pin_e flexSensorPin; /** - * offset 846 + * offset 794 */ Gpio test557pin; /** - * offset 848 + * offset 796 */ pin_output_mode_e stepperDirectionPinMode; /** - * offset 849 + * offset 797 */ spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 :1 - * offset 850 + * offset 798 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. % - * offset 851 + * offset 799 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). hz - * offset 852 + * offset 800 */ uint16_t sdCardLogFrequency; /** - * offset 854 - */ - adc_channel_e idlePositionSensor; - /** - * need 4 byte alignment - units - * offset 855 - */ - uint8_t alignmentFill_at_855[1]; - /** - * offset 856 + * offset 802 */ Gpio debugMapAveraging; /** - * offset 858 + * offset 804 */ output_pin_e starterRelayDisablePin; /** * On some vehicles we can disable starter once engine is already running - * offset 860 + * offset 806 */ pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment units - * offset 861 + * offset 807 */ - uint8_t alignmentFill_at_861[1]; + uint8_t alignmentFill_at_807[1]; /** * Some Subaru and some Mazda use double-solenoid idle air valve - * offset 862 + * offset 808 */ output_pin_e secondSolenoidPin; /** * See also starterControlPin - * offset 864 + * offset 810 */ switch_input_pin_e startStopButtonPin; - /** - * need 4 byte alignment - units - * offset 866 - */ - uint8_t alignmentFill_at_866[2]; /** * 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. count - * offset 868 + * offset 812 */ int mapMinBufferLength; /** * 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%. % - * offset 872 + * offset 816 */ int16_t idlePidDeactivationTpsThreshold; /** % - * offset 874 + * offset 818 */ int16_t stepperParkingExtraSteps; /** ADC - * offset 876 + * offset 820 */ uint16_t tps1SecondaryMin; /** ADC - * offset 878 + * offset 822 */ uint16_t tps1SecondaryMax; /** rpm - * offset 880 + * offset 824 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed Seconds - * offset 882 + * offset 826 */ uint16_t startCrankingDuration; /** * This pin is used for debugging - snap a logic analyzer on it and see if it's ever high - * offset 884 + * offset 828 */ Gpio triggerErrorPin; /** - * offset 886 + * offset 830 */ pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment units - * offset 887 + * offset 831 */ - uint8_t alignmentFill_at_887[1]; + uint8_t alignmentFill_at_831[1]; /** - * offset 888 + * offset 832 */ output_pin_e acRelayPin; /** - * offset 890 + * offset 834 */ pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment units - * offset 891 + * offset 835 */ - uint8_t alignmentFill_at_891[1]; + uint8_t alignmentFill_at_835[1]; /** - * offset 892 + * offset 836 */ script_setting_t scriptSetting[SCRIPT_SETTING_COUNT]; /** - * offset 924 + * offset 868 */ Gpio spi1mosiPin; /** - * offset 926 + * offset 870 */ Gpio spi1misoPin; /** - * offset 928 + * offset 872 */ Gpio spi1sckPin; /** - * offset 930 + * offset 874 */ Gpio spi2mosiPin; /** - * offset 932 + * offset 876 */ Gpio spi2misoPin; /** - * offset 934 + * offset 878 */ Gpio spi2sckPin; /** - * offset 936 + * offset 880 */ Gpio spi3mosiPin; /** - * offset 938 + * offset 882 */ Gpio spi3misoPin; /** - * offset 940 + * offset 884 */ Gpio spi3sckPin; /** - * Saab Combustion Detection Module knock signal input pin - * also known as Saab Ion Sensing Module - * offset 942 - */ - Gpio cdmInputPin; - /** - * offset 944 - */ - Gpio joystickCenterPin; - /** - * offset 946 - */ - Gpio joystickAPin; - /** - * offset 948 - */ - Gpio joystickBPin; - /** - * offset 950 - */ - Gpio joystickCPin; - /** - * offset 952 - */ - Gpio joystickDPin; - /** - * offset 954 + * offset 886 */ uart_device_e consoleUartDevice; /** * rusEFI console Sensor Sniffer mode - * offset 955 + * offset 887 */ sensor_chart_e sensorChartMode; /** - * offset 956 + * offset 888 */ maf_sensor_type_e mafSensorType; /** * need 4 byte alignment units - * offset 957 + * offset 889 */ - uint8_t alignmentFill_at_957[3]; + uint8_t alignmentFill_at_889[3]; /** - offset 960 bit 0 */ + offset 892 bit 0 */ bool clutchUpPinInverted : 1 {}; /** - offset 960 bit 1 */ + offset 892 bit 1 */ bool clutchDownPinInverted : 1 {}; /** * If enabled we use two H-bridges to drive stepper idle air valve - offset 960 bit 2 */ + offset 892 bit 2 */ bool useHbridgesToDriveIdleStepper : 1 {}; /** - offset 960 bit 3 */ + offset 892 bit 3 */ bool multisparkEnable : 1 {}; /** - offset 960 bit 4 */ + offset 892 bit 4 */ bool enableLaunchRetard : 1 {}; - /** - offset 960 bit 5 */ - bool unfinishedenableLaunchBoost : 1 {}; - /** - offset 960 bit 6 */ - bool unfinishedlaunchDisableBySpeed : 1 {}; /** * Read VSS from OEM CAN bus according to selected CAN vehicle configuration. - offset 960 bit 7 */ + offset 892 bit 5 */ bool enableCanVss : 1 {}; /** - offset 960 bit 8 */ + offset 892 bit 6 */ bool enableInnovateLC2 : 1 {}; /** - offset 960 bit 9 */ + offset 892 bit 7 */ bool showHumanReadableWarning : 1 {}; /** - * 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. - offset 960 bit 10 */ + * 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. + offset 892 bit 8 */ bool stftIgnoreErrorMagnitude : 1 {}; /** - offset 960 bit 11 */ + offset 892 bit 9 */ bool vvtBooleanForVerySpecialCases : 1 {}; /** - offset 960 bit 12 */ + offset 892 bit 10 */ bool enableSoftwareKnock : 1 {}; /** * Verbose info in console below engineSnifferRpmThreshold * enable vvt_details - offset 960 bit 13 */ + offset 892 bit 11 */ bool verboseVVTDecoding : 1 {}; /** * get invertCamVVTSignal - offset 960 bit 14 */ + offset 892 bit 12 */ bool invertCamVVTSignal : 1 {}; /** * This property is useful if using rusEFI as TCM or BCM only * enable consumeObdSensors - offset 960 bit 15 */ + offset 892 bit 13 */ bool consumeObdSensors : 1 {}; /** - offset 960 bit 16 */ + offset 892 bit 14 */ bool knockBankCyl1 : 1 {}; /** - offset 960 bit 17 */ + offset 892 bit 15 */ bool knockBankCyl2 : 1 {}; /** - offset 960 bit 18 */ + offset 892 bit 16 */ bool knockBankCyl3 : 1 {}; /** - offset 960 bit 19 */ + offset 892 bit 17 */ bool knockBankCyl4 : 1 {}; /** - offset 960 bit 20 */ + offset 892 bit 18 */ bool knockBankCyl5 : 1 {}; /** - offset 960 bit 21 */ + offset 892 bit 19 */ bool knockBankCyl6 : 1 {}; /** - offset 960 bit 22 */ + offset 892 bit 20 */ bool knockBankCyl7 : 1 {}; /** - offset 960 bit 23 */ + offset 892 bit 21 */ bool knockBankCyl8 : 1 {}; /** - offset 960 bit 24 */ + offset 892 bit 22 */ bool knockBankCyl9 : 1 {}; /** - offset 960 bit 25 */ + offset 892 bit 23 */ bool knockBankCyl10 : 1 {}; /** - offset 960 bit 26 */ + offset 892 bit 24 */ bool knockBankCyl11 : 1 {}; /** - offset 960 bit 27 */ + offset 892 bit 25 */ bool knockBankCyl12 : 1 {}; /** - offset 960 bit 28 */ + offset 892 bit 26 */ bool tcuEnabled : 1 {}; /** - offset 960 bit 29 */ + offset 892 bit 27 */ bool canBroadcastUseChannelTwo : 1 {}; /** * If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coilss - offset 960 bit 30 */ + offset 892 bit 28 */ bool useRawOutputToDriveIdleStepper : 1 {}; /** * Print incoming and outgoing second bus CAN messages in rusEFI console - offset 960 bit 31 */ + offset 892 bit 29 */ bool verboseCan2 : 1 {}; /** - * offset 964 + offset 892 bit 30 */ + bool unusedBit_308_30 : 1 {}; + /** + offset 892 bit 31 */ + bool unusedBit_308_31 : 1 {}; + /** + * offset 896 */ dc_io etbIo[ETB_COUNT]; /** * Wastegate control Solenoid - * offset 980 + * offset 912 */ output_pin_e boostControlPin; /** - * offset 982 + * offset 914 */ pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment units - * offset 983 + * offset 915 */ - uint8_t alignmentFill_at_983[1]; + uint8_t alignmentFill_at_915[1]; /** - * offset 984 + * offset 916 */ switch_input_pin_e ALSActivatePin; /** - * offset 986 + * offset 918 */ switch_input_pin_e launchActivatePin; /** - * offset 988 + * offset 920 */ pid_s boostPid; /** - * offset 1008 + * offset 940 */ boostType_e boostType; /** * need 4 byte alignment units - * offset 1009 + * offset 941 */ - uint8_t alignmentFill_at_1009[3]; + uint8_t alignmentFill_at_941[3]; /** Hz - * offset 1012 + * offset 944 */ int boostPwmFrequency; /** - * offset 1016 + * offset 948 */ launchActivationMode_e launchActivationMode; /** - * offset 1017 + * offset 949 */ antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment units - * offset 1018 + * offset 950 */ - uint8_t alignmentFill_at_1018[2]; + uint8_t alignmentFill_at_950[2]; /** * Disabled above this speed Kph - * offset 1020 + * offset 952 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate RPM - * offset 1024 + * offset 956 */ int launchTimingRpmRange; /** * Extra Fuel Added % - * offset 1028 + * offset 960 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid % - * offset 1032 + * offset 964 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut RPM - * offset 1036 + * offset 968 */ int hardCutRpmRange; /** - * offset 1040 + * offset 972 */ float turbochargerFilter; /** - * offset 1044 + * offset 976 */ int launchTpsThreshold; /** - * offset 1048 + * offset 980 */ float launchActivateDelay; /** - * offset 1052 + * offset 984 */ stft_s stft; /** - * offset 1076 + * offset 1008 */ dc_io stepperDcIo[DC_PER_STEPPER]; /** * For example, BMW, GM or Chevrolet * REQUIRED for rusEFI Online - * offset 1092 + * offset 1024 */ vehicle_info_t engineMake; /** * For example, LS1 or NB2 * REQUIRED for rusEFI Online - * offset 1124 + * offset 1056 */ vehicle_info_t engineCode; /** * For example, Hunchback or Orange Miata * Vehicle name has to be unique between your vehicles. * REQUIRED for rusEFI Online - * offset 1156 + * offset 1088 */ vehicle_info_t vehicleName; /** - * offset 1188 + * offset 1120 */ output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT]; /** - * offset 1200 + * offset 1132 */ dc_function_e etbFunctions[ETB_COUNT]; /** - * offset 1202 + * offset 1134 */ spi_device_e drv8860spiDevice; /** * need 4 byte alignment units - * offset 1203 + * offset 1135 */ - uint8_t alignmentFill_at_1203[1]; + uint8_t alignmentFill_at_1135[1]; /** - * offset 1204 + * offset 1136 */ Gpio drv8860_cs; /** - * offset 1206 + * offset 1138 */ pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment units - * offset 1207 + * offset 1139 */ - uint8_t alignmentFill_at_1207[1]; + uint8_t alignmentFill_at_1139[1]; /** - * offset 1208 + * offset 1140 */ Gpio drv8860_miso; /** volt - * offset 1210 + * offset 1142 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; /** - * offset 1226 + * offset 1158 */ output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment units - * offset 1242 + * offset 1174 */ - uint8_t alignmentFill_at_1242[2]; + uint8_t alignmentFill_at_1174[2]; /** * Angle between cam sensor and VVT zero position - * set vvt_offset X value - * offset 1244 + * offset 1176 */ float vvtOffsets[CAM_INPUTS_COUNT]; /** - * offset 1260 + * offset 1192 */ vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT]; /** - * offset 1292 + * offset 1224 */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** ADC - * offset 1356 + * offset 1288 */ uint16_t tps2SecondaryMin; /** ADC - * offset 1358 + * offset 1290 */ uint16_t tps2SecondaryMax; /** * Select which bus the wideband controller is attached to. - offset 1360 bit 0 */ + offset 1292 bit 0 */ bool widebandOnSecondBus : 1 {}; /** * Enables lambda sensor closed loop feedback for fuelling. - offset 1360 bit 1 */ + offset 1292 bit 1 */ bool fuelClosedLoopCorrectionEnabled : 1 {}; /** * Print details into rusEFI console * enable verbose_idle - offset 1360 bit 2 */ + offset 1292 bit 2 */ bool isVerboseIAC : 1 {}; /** - offset 1360 bit 3 */ + offset 1292 bit 3 */ bool boardUseTachPullUp : 1 {}; /** - offset 1360 bit 4 */ + offset 1292 bit 4 */ bool boardUseTempPullUp : 1 {}; /** - offset 1360 bit 5 */ + offset 1292 bit 5 */ bool yesUnderstandLocking : 1 {}; /** * Sometimes we have a performance issue while printing error - offset 1360 bit 6 */ + offset 1292 bit 6 */ bool silentTriggerError : 1 {}; /** - offset 1360 bit 7 */ + offset 1292 bit 7 */ bool useLinearCltSensor : 1 {}; /** * enable can_read/disable can_read - offset 1360 bit 8 */ + offset 1292 bit 8 */ bool canReadEnabled : 1 {}; /** * enable can_write/disable can_write - offset 1360 bit 9 */ + offset 1292 bit 9 */ bool canWriteEnabled : 1 {}; /** - offset 1360 bit 10 */ + offset 1292 bit 10 */ bool useLinearIatSensor : 1 {}; /** - offset 1360 bit 11 */ + offset 1292 bit 11 */ bool boardUse2stepPullDown : 1 {}; /** * Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50% - offset 1360 bit 12 */ + offset 1292 bit 12 */ bool tachPulseDurationAsDutyCycle : 1 {}; /** * This enables smart alternator control and activates the extra alternator settings. - offset 1360 bit 13 */ + offset 1292 bit 13 */ bool isAlternatorControlEnabled : 1 {}; /** * https://wiki.rusefi.com/Trigger-Configuration-Guide * This setting flips the signal from the primary engine speed sensor. - offset 1360 bit 14 */ + offset 1292 bit 14 */ bool invertPrimaryTriggerSignal : 1 {}; /** * https://wiki.rusefi.com/Trigger-Configuration-Guide * This setting flips the signal from the secondary engine speed sensor. - offset 1360 bit 15 */ + offset 1292 bit 15 */ bool invertSecondaryTriggerSignal : 1 {}; /** - offset 1360 bit 16 */ + offset 1292 bit 16 */ bool cutFuelOnHardLimit : 1 {}; /** * Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer. - offset 1360 bit 17 */ + offset 1292 bit 17 */ bool cutSparkOnHardLimit : 1 {}; /** - offset 1360 bit 18 */ + offset 1292 bit 18 */ bool launchFuelCutEnable : 1 {}; /** * This is the Cut Mode normally used - offset 1360 bit 19 */ + offset 1292 bit 19 */ bool launchSparkCutEnable : 1 {}; /** - offset 1360 bit 20 */ + offset 1292 bit 20 */ bool boardUseCrankPullUp : 1 {}; /** - offset 1360 bit 21 */ + offset 1292 bit 21 */ bool boardUseCamPullDown : 1 {}; /** - offset 1360 bit 22 */ + offset 1292 bit 22 */ bool boardUseCamVrPullUp : 1 {}; /** - offset 1360 bit 23 */ + offset 1292 bit 23 */ bool boardUseD2PullDown : 1 {}; /** - offset 1360 bit 24 */ + offset 1292 bit 24 */ bool boardUseD3PullDown : 1 {}; /** - offset 1360 bit 25 */ + offset 1292 bit 25 */ bool boardUseD4PullDown : 1 {}; /** - offset 1360 bit 26 */ + offset 1292 bit 26 */ bool boardUseD5PullDown : 1 {}; /** - offset 1360 bit 27 */ + offset 1292 bit 27 */ bool verboseIsoTp : 1 {}; /** - offset 1360 bit 28 */ + offset 1292 bit 28 */ bool engineSnifferFocusOnInputs : 1 {}; /** - offset 1360 bit 29 */ + offset 1292 bit 29 */ bool launchActivateInverted : 1 {}; /** - offset 1360 bit 30 */ + offset 1292 bit 30 */ bool twoStroke : 1 {}; /** * Where is your primary skipped wheel located? - offset 1360 bit 31 */ + offset 1292 bit 31 */ bool skippedWheelOnCam : 1 {}; /** - * offset 1364 + * offset 1296 */ adc_channel_e hipOutputChannel; /** * need 4 byte alignment units - * offset 1365 + * offset 1297 */ - uint8_t alignmentFill_at_1365[1]; + uint8_t alignmentFill_at_1297[1]; /** * A/C button input - * offset 1366 + * offset 1298 */ switch_input_pin_e acSwitch; /** - * offset 1368 + * offset 1300 */ adc_channel_e vRefAdcChannel; /** * Expected neutral position % - * offset 1369 + * offset 1301 */ uint8_t etbNeutralPosition; /** * See also idleRpmPid - * offset 1370 + * offset 1302 */ idle_mode_e idleMode; /** * need 4 byte alignment units - * offset 1371 + * offset 1303 */ - uint8_t alignmentFill_at_1371[1]; + uint8_t alignmentFill_at_1303[1]; /** - offset 1372 bit 0 */ + offset 1304 bit 0 */ bool isInjectionEnabled : 1 {}; /** - offset 1372 bit 1 */ + offset 1304 bit 1 */ bool isIgnitionEnabled : 1 {}; /** * When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders. - offset 1372 bit 2 */ + offset 1304 bit 2 */ bool isCylinderCleanupEnabled : 1 {}; /** * Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values? - offset 1372 bit 3 */ + offset 1304 bit 3 */ bool complexWallModel : 1 {}; /** - offset 1372 bit 4 */ + offset 1304 bit 4 */ bool alwaysInstantRpm : 1 {}; /** - offset 1372 bit 5 */ + offset 1304 bit 5 */ bool isMapAveragingEnabled : 1 {}; /** * If enabled, use separate temperature multiplier table for cranking idle position. * If disabled, use normal running multiplier table applied to the cranking base position. - offset 1372 bit 6 */ + offset 1304 bit 6 */ bool overrideCrankingIacSetting : 1 {}; /** * 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. - offset 1372 bit 7 */ + offset 1304 bit 7 */ bool useSeparateAdvanceForIdle : 1 {}; /** - offset 1372 bit 8 */ + offset 1304 bit 8 */ bool isWaveAnalyzerEnabled : 1 {}; /** * This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling. - offset 1372 bit 9 */ + offset 1304 bit 9 */ bool useSeparateVeForIdle : 1 {}; /** * Verbose info in console below engineSnifferRpmThreshold * enable trigger_details - offset 1372 bit 10 */ + offset 1304 bit 10 */ bool verboseTriggerSynchDetails : 1 {}; /** * Usually if we have no trigger events that means engine is stopped * Unless we are troubleshooting and spinning the engine by hand - this case a longer * delay is needed - offset 1372 bit 11 */ + offset 1304 bit 11 */ bool isManualSpinningMode : 1 {}; /** * This is needed if your coils are individually wired and you wish to use batch injection. * enable two_wire_batch_injection - offset 1372 bit 12 */ + offset 1304 bit 12 */ bool twoWireBatchInjection : 1 {}; /** - offset 1372 bit 13 */ + offset 1304 bit 13 */ bool neverInstantRpm : 1 {}; /** * This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark). - offset 1372 bit 14 */ + offset 1304 bit 14 */ bool twoWireBatchIgnition : 1 {}; /** - offset 1372 bit 15 */ + offset 1304 bit 15 */ bool useFixedBaroCorrFromMap : 1 {}; /** * In Constant mode, timing is automatically tapered to running as RPM increases. * In Table mode, the "Cranking ignition advance" table is used directly. - offset 1372 bit 16 */ + offset 1304 bit 16 */ bool useSeparateAdvanceForCranking : 1 {}; /** * This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle). * You probably don't need this. - offset 1372 bit 17 */ + offset 1304 bit 17 */ bool useAdvanceCorrectionsForCranking : 1 {}; /** * Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor. - offset 1372 bit 18 */ + offset 1304 bit 18 */ bool flexCranking : 1 {}; /** * This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller - offset 1372 bit 19 */ + offset 1304 bit 19 */ bool useIacPidMultTable : 1 {}; /** - offset 1372 bit 20 */ + offset 1304 bit 20 */ bool isBoostControlEnabled : 1 {}; /** * Interpolates the Ignition Retard from 0 to 100% within the RPM Range - offset 1372 bit 21 */ + offset 1304 bit 21 */ bool launchSmoothRetard : 1 {}; /** * Some engines are OK running semi-random sequential while other engine require phase synchronization - offset 1372 bit 22 */ + offset 1304 bit 22 */ bool isPhaseSyncRequiredForIgnition : 1 {}; /** * If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value. - offset 1372 bit 23 */ + offset 1304 bit 23 */ bool useCltBasedRpmLimit : 1 {}; /** * 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. - offset 1372 bit 24 */ + offset 1304 bit 24 */ bool forceO2Heating : 1 {}; /** * 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'. - offset 1372 bit 25 */ + offset 1304 bit 25 */ bool invertVvtControlIntake : 1 {}; /** * 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'. - offset 1372 bit 26 */ + offset 1304 bit 26 */ bool invertVvtControlExhaust : 1 {}; /** - offset 1372 bit 27 */ + offset 1304 bit 27 */ bool useBiQuadOnAuxSpeedSensors : 1 {}; /** * '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. - offset 1372 bit 28 */ + offset 1304 bit 28 */ bool sdTriggerLog : 1 {}; /** - offset 1372 bit 29 */ + offset 1304 bit 29 */ bool ALSActivateInverted : 1 {}; /** - offset 1372 bit 30 */ + offset 1304 bit 30 */ bool unused_1484_bit_30 : 1 {}; /** - offset 1372 bit 31 */ + offset 1304 bit 31 */ bool tempBooleanForVerySpecialLogic : 1 {}; /** count - * offset 1376 + * offset 1308 */ uint32_t engineChartSize; /** mult - * offset 1380 + * offset 1312 */ float turboSpeedSensorMultiplier; /** - * offset 1384 + * offset 1316 */ Gpio camInputsDebug[CAM_INPUTS_COUNT]; /** * Extra idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling. RPM - * offset 1392 + * offset 1324 */ int16_t acIdleRpmBump; /** - * set warningPeriod X seconds - * offset 1394 + * offset 1326 */ int16_t warningPeriod; /** angle - * offset 1396 + * offset 1328 */ float knockDetectionWindowStart; /** angle - * offset 1400 + * offset 1332 */ float knockDetectionWindowEnd; /** ms - * offset 1404 + * offset 1336 */ float idleStepperReactionTime; /** count - * offset 1408 + * offset 1340 */ int idleStepperTotalSteps; /** * TODO: finish this #413 sec - * offset 1412 + * offset 1344 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. index - * offset 1416 + * offset 1348 */ int mapAveragingSchedulingAtIndex; /** * Duration in ms or duty cycle depending on selected mode - * offset 1420 + * offset 1352 */ float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. Seconds - * offset 1424 + * offset 1356 */ float wwaeTau; /** - * offset 1428 + * offset 1360 */ pid_s alternatorControl; /** - * offset 1448 + * offset 1380 */ pid_s etb; /** - * offset 1468 + * offset 1400 */ Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper,"RPM", 1, 0, 0, 1500, 0 - * offset 1472 + * offset 1404 */ int16_t airTaperRpmRange; /** - * offset 1474 + * offset 1406 */ brain_input_pin_e turboSpeedSensorInputPin; /** * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel - * set tps2_min X ADC - * offset 1476 + * offset 1408 */ int16_t tps2Min; /** * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel - * set tps2_max X ADC - * offset 1478 + * offset 1410 */ int16_t tps2Max; /** * See also startStopButtonPin - * offset 1480 + * offset 1412 */ output_pin_e starterControlPin; /** - * offset 1482 + * offset 1414 */ pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment units - * offset 1483 + * offset 1415 */ - uint8_t alignmentFill_at_1483[1]; + uint8_t alignmentFill_at_1415[1]; /** - * offset 1484 + * offset 1416 */ Gpio mc33816_flag0; /** Pulse - * offset 1486 + * offset 1418 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment units - * offset 1487 + * offset 1419 */ - uint8_t alignmentFill_at_1487[1]; + uint8_t alignmentFill_at_1419[1]; /** * kPa value which is too low to be true kPa - * offset 1488 + * offset 1420 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true kPa - * offset 1492 + * offset 1424 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. ms - * offset 1496 + * offset 1428 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. ms - * offset 1498 + * offset 1430 */ scaled_channel multisparkDwell; /** * See cltIdleRpmBins - * offset 1500 + * offset 1432 */ pid_s idleRpmPid; /** * 0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment. Fraction - * offset 1520 + * offset 1452 */ float wwaeBeta; /** * blue LED on many rusEFI boards. * Blue Communication LED which is expected to blink at 50% duty cycle during normal board operation. * If USB communication cable is connected Blue LED starts to blink faster. - * offset 1524 + * offset 1456 */ Gpio communicationLedPin; /** * Green LED on many rusEFI boards. * Off if engine is stopped, blinks if engine is cranking, solid if engine is running. - * offset 1526 + * offset 1458 */ Gpio runningLedPin; /** * See also EFI_CONSOLE_RX_BRAIN_PIN - * offset 1528 + * offset 1460 */ Gpio binarySerialTxPin; /** - * offset 1530 + * offset 1462 */ Gpio binarySerialRxPin; /** - * offset 1532 + * offset 1464 */ Gpio auxValves[AUX_DIGITAL_VALVE_COUNT]; /** - * offset 1536 + * offset 1468 */ switch_input_pin_e tcuUpshiftButtonPin; /** - * offset 1538 + * offset 1470 */ switch_input_pin_e tcuDownshiftButtonPin; /** voltage - * offset 1540 + * offset 1472 */ float throttlePedalUpVoltage; /** * Pedal in the floor voltage - * offset 1544 + * offset 1476 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure seconds - * offset 1548 + * offset 1480 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation RPM - * offset 1550 + * offset 1482 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain Volts - * offset 1552 + * offset 1484 */ float targetVBatt; /** * Turns off alternator output above specified TPS, enabling this reduced parasitic drag on the engine at full load. % - * offset 1556 + * offset 1488 */ float alternatorOffAboveTps; /** * 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. cycles - * offset 1560 + * offset 1492 */ int16_t afterCrankingIACtaperDuration; /** * Extra IAC, in percent between 0 and 100, tapered between zero and idle deactivation TPS value percent - * offset 1562 + * offset 1494 */ int16_t iacByTpsTaper; /** * Auxiliary sensor serial, not to be confused with secondary calibration serial - * set_aux_tx_pin X - * offset 1564 + * offset 1496 */ Gpio auxSerialTxPin; /** - * offset 1566 + * offset 1498 */ Gpio warningLedPin; /** * Auxiliary sensor serial, not to be confused with secondary calibration serial - * set_aux_rx_pin X - * offset 1568 + * offset 1500 */ Gpio auxSerialRxPin; /** - * offset 1570 + * offset 1502 */ Gpio LIS302DLCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. sec - * offset 1572 + * offset 1504 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. kph - * offset 1573 + * offset 1505 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. kph - * offset 1574 + * offset 1506 */ uint8_t coastingFuelCutVssHigh; /** * 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. sec - * offset 1575 + * offset 1507 */ scaled_channel noFuelTrimAfterDfcoTime; /** * 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. roc - * offset 1576 + * offset 1508 */ float tpsAccelEnrichmentThreshold; /** - * offset 1580 + * offset 1512 */ brain_input_pin_e auxSpeedSensorInputPin[2]; /** - * offset 1584 + * offset 1516 */ uint8_t totalGearsCount; /** * Sets what part of injection's is controlled by the injection phase table. - * offset 1585 + * offset 1517 */ InjectionTimingMode injectionTimingMode; /** * need 4 byte alignment units - * offset 1586 + * offset 1518 */ - uint8_t alignmentFill_at_1586[2]; + uint8_t alignmentFill_at_1518[2]; /** * Band rate for primary TTL BPs - * offset 1588 + * offset 1520 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! roc - * offset 1592 + * offset 1524 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration coeff - * offset 1596 + * offset 1528 */ float tpsDecelEnleanmentMultiplier; /** * ExpAverage alpha coefficient coeff - * offset 1600 + * offset 1532 */ float slowAdcAlpha; /** * See http://rusefi.com/s/debugmode - * - * set debug_mode X - * offset 1604 + * offset 1536 */ debug_mode_e debugMode; /** * need 4 byte alignment units - * offset 1605 + * offset 1537 */ - uint8_t alignmentFill_at_1605[3]; + uint8_t alignmentFill_at_1537[3]; /** BPs - * offset 1608 + * offset 1540 */ uint32_t auxSerialSpeed; /** voltage - * offset 1612 + * offset 1544 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor voltage - * offset 1616 + * offset 1548 */ float throttlePedalSecondaryWOTVoltage; /** * set can_baudrate - * offset 1620 + * offset 1552 */ can_baudrate_e canBaudRate; /** * Override the Y axis (load) value used for the VE table. * Advanced users only: If you aren't sure you need this, you probably don't need this. - * offset 1621 + * offset 1553 */ ve_override_e veOverrideMode; /** - * offset 1622 + * offset 1554 */ can_baudrate_e can2BaudRate; /** * Override the Y axis (load) value used for the AFR table. * Advanced users only: If you aren't sure you need this, you probably don't need this. - * offset 1623 + * offset 1555 */ load_override_e afrOverrideMode; /** A - * offset 1624 + * offset 1556 */ scaled_channel mc33_hpfp_i_peak; /** A - * offset 1625 + * offset 1557 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again us - * offset 1626 + * offset 1558 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error ms - * offset 1627 + * offset 1559 */ uint8_t mc33_hpfp_max_hold; /** * Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards) - offset 1628 bit 0 */ + offset 1560 bit 0 */ bool stepperDcInvertedPins : 1 {}; /** * Allow OpenBLT on Primary CAN - offset 1628 bit 1 */ + offset 1560 bit 1 */ bool canOpenBLT : 1 {}; /** * Allow OpenBLT on Secondary CAN - offset 1628 bit 2 */ + offset 1560 bit 2 */ bool can2OpenBLT : 1 {}; /** * Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s). - offset 1628 bit 3 */ + offset 1560 bit 3 */ bool injectorFlowAsMassFlow : 1 {}; /** - offset 1628 bit 4 */ + offset 1560 bit 4 */ bool unused1127 : 1 {}; /** - offset 1628 bit 5 */ + offset 1560 bit 5 */ bool unused1128 : 1 {}; /** - offset 1628 bit 6 */ + offset 1560 bit 6 */ bool unused1129 : 1 {}; /** - offset 1628 bit 7 */ + offset 1560 bit 7 */ bool unused1130 : 1 {}; /** - offset 1628 bit 8 */ - bool unusedBit_542_8 : 1 {}; + offset 1560 bit 8 */ + bool unusedBit_508_8 : 1 {}; /** - offset 1628 bit 9 */ - bool unusedBit_542_9 : 1 {}; + offset 1560 bit 9 */ + bool unusedBit_508_9 : 1 {}; /** - offset 1628 bit 10 */ - bool unusedBit_542_10 : 1 {}; + offset 1560 bit 10 */ + bool unusedBit_508_10 : 1 {}; /** - offset 1628 bit 11 */ - bool unusedBit_542_11 : 1 {}; + offset 1560 bit 11 */ + bool unusedBit_508_11 : 1 {}; /** - offset 1628 bit 12 */ - bool unusedBit_542_12 : 1 {}; + offset 1560 bit 12 */ + bool unusedBit_508_12 : 1 {}; /** - offset 1628 bit 13 */ - bool unusedBit_542_13 : 1 {}; + offset 1560 bit 13 */ + bool unusedBit_508_13 : 1 {}; /** - offset 1628 bit 14 */ - bool unusedBit_542_14 : 1 {}; + offset 1560 bit 14 */ + bool unusedBit_508_14 : 1 {}; /** - offset 1628 bit 15 */ - bool unusedBit_542_15 : 1 {}; + offset 1560 bit 15 */ + bool unusedBit_508_15 : 1 {}; /** - offset 1628 bit 16 */ - bool unusedBit_542_16 : 1 {}; + offset 1560 bit 16 */ + bool unusedBit_508_16 : 1 {}; /** - offset 1628 bit 17 */ - bool unusedBit_542_17 : 1 {}; + offset 1560 bit 17 */ + bool unusedBit_508_17 : 1 {}; /** - offset 1628 bit 18 */ - bool unusedBit_542_18 : 1 {}; + offset 1560 bit 18 */ + bool unusedBit_508_18 : 1 {}; /** - offset 1628 bit 19 */ - bool unusedBit_542_19 : 1 {}; + offset 1560 bit 19 */ + bool unusedBit_508_19 : 1 {}; /** - offset 1628 bit 20 */ - bool unusedBit_542_20 : 1 {}; + offset 1560 bit 20 */ + bool unusedBit_508_20 : 1 {}; /** - offset 1628 bit 21 */ - bool unusedBit_542_21 : 1 {}; + offset 1560 bit 21 */ + bool unusedBit_508_21 : 1 {}; /** - offset 1628 bit 22 */ - bool unusedBit_542_22 : 1 {}; + offset 1560 bit 22 */ + bool unusedBit_508_22 : 1 {}; /** - offset 1628 bit 23 */ - bool unusedBit_542_23 : 1 {}; + offset 1560 bit 23 */ + bool unusedBit_508_23 : 1 {}; /** - offset 1628 bit 24 */ - bool unusedBit_542_24 : 1 {}; + offset 1560 bit 24 */ + bool unusedBit_508_24 : 1 {}; /** - offset 1628 bit 25 */ - bool unusedBit_542_25 : 1 {}; + offset 1560 bit 25 */ + bool unusedBit_508_25 : 1 {}; /** - offset 1628 bit 26 */ - bool unusedBit_542_26 : 1 {}; + offset 1560 bit 26 */ + bool unusedBit_508_26 : 1 {}; /** - offset 1628 bit 27 */ - bool unusedBit_542_27 : 1 {}; + offset 1560 bit 27 */ + bool unusedBit_508_27 : 1 {}; /** - offset 1628 bit 28 */ - bool unusedBit_542_28 : 1 {}; + offset 1560 bit 28 */ + bool unusedBit_508_28 : 1 {}; /** - offset 1628 bit 29 */ - bool unusedBit_542_29 : 1 {}; + offset 1560 bit 29 */ + bool unusedBit_508_29 : 1 {}; /** - offset 1628 bit 30 */ - bool unusedBit_542_30 : 1 {}; + offset 1560 bit 30 */ + bool unusedBit_508_30 : 1 {}; /** - offset 1628 bit 31 */ - bool unusedBit_542_31 : 1 {}; + offset 1560 bit 31 */ + bool unusedBit_508_31 : 1 {}; /** * Time between bench test pulses ms - * offset 1632 + * offset 1564 */ scaled_channel benchTestOffTime; /** * How many test bench pulses do you want count - * offset 1633 + * offset 1565 */ uint8_t benchTestCount; /** * Length of each of the test pulses ms - * offset 1634 + * offset 1566 */ scaled_channel benchTestOnTime; /** - * offset 1635 + * offset 1567 */ pin_input_mode_e launchActivatePinMode; /** * set_can2_tx_pin X - * offset 1636 + * offset 1568 */ Gpio can2TxPin; /** * set_can2_rx_pin X - * offset 1638 + * offset 1570 */ Gpio can2RxPin; /** - * offset 1640 + * offset 1572 */ pin_output_mode_e starterControlPinMode; /** - * offset 1641 + * offset 1573 */ adc_channel_e wastegatePositionSensor; /** * Override the Y axis (load) value used for the ignition table. * Advanced users only: If you aren't sure you need this, you probably don't need this. - * offset 1642 + * offset 1574 */ load_override_e ignOverrideMode; /** * Select which fuel pressure sensor measures the pressure of the fuel at your injectors. - * offset 1643 + * offset 1575 */ injector_pressure_type_e injectorPressureType; /** - * offset 1644 + * offset 1576 */ output_pin_e hpfpValvePin; /** - * offset 1646 + * offset 1578 */ pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment units - * offset 1647 + * offset 1579 */ - uint8_t alignmentFill_at_1647[1]; + uint8_t alignmentFill_at_1579[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. kPa (absolute) - * offset 1648 + * offset 1580 */ float boostCutPressure; /** kg/h - * offset 1652 + * offset 1584 */ scaled_channel tchargeBins[16]; /** ratio - * offset 1668 + * offset 1600 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing deg - * offset 1684 + * offset 1616 */ float fixedTiming; /** * MAP voltage for low point v - * offset 1688 + * offset 1620 */ float mapLowValueVoltage; /** * MAP voltage for low point v - * offset 1692 + * offset 1624 */ float mapHighValueVoltage; /** * EGO value correction value - * offset 1696 + * offset 1628 */ float egoValueShift; /** * VVT output * TODO: rename to vvtOutputs - * offset 1700 + * offset 1632 */ output_pin_e vvtPins[CAM_INPUTS_COUNT]; /** - * offset 1708 - */ - spi_device_e cj125SpiDevice; - /** - * offset 1709 - */ - pin_output_mode_e cj125CsPinMode; - /** - * offset 1710 + * offset 1640 */ pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment units - * offset 1711 + * offset 1641 */ - uint8_t alignmentFill_at_1711[1]; + uint8_t alignmentFill_at_1641[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. percent - * offset 1712 + * offset 1644 */ int crankingIACposition; /** - * offset 1716 + * offset 1648 */ float tChargeMinRpmMinTps; /** - * offset 1720 + * offset 1652 */ float tChargeMinRpmMaxTps; /** - * offset 1724 + * offset 1656 */ float tChargeMaxRpmMinTps; /** - * offset 1728 + * offset 1660 */ float tChargeMaxRpmMaxTps; /** - * offset 1732 + * offset 1664 */ pwm_freq_t vvtOutputFrequency[CAMS_PER_BANK]; /** * Additional idle % when fan #1 is active % - * offset 1736 + * offset 1668 */ uint8_t fan1ExtraIdle; /** * need 4 byte alignment units - * offset 1737 + * offset 1669 */ - uint8_t alignmentFill_at_1737[3]; + uint8_t alignmentFill_at_1669[3]; /** Hz - * offset 1740 + * offset 1672 */ int alternatorPwmFrequency; /** - * set vvt_mode X - * offset 1744 + * offset 1676 */ vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active % - * offset 1746 + * offset 1678 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. sec - * offset 1747 + * offset 1679 */ scaled_channel primingDelay; /** - * offset 1748 + * offset 1680 */ adc_channel_e auxAnalogInputs[LUA_ANALOG_INPUT_COUNT]; /** - * offset 1756 + * offset 1688 */ output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT]; /** - * offset 1780 + * offset 1712 */ tle8888_mode_e tle8888mode; /** - * offset 1781 + * offset 1713 */ pin_output_mode_e LIS302DLCsPinMode; /** * None = I have a MAP-referenced fuel pressure regulator * Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically) * Sensed rail pressure = I have a fuel pressure sensor - * offset 1782 + * offset 1714 */ injector_compensation_mode_e injectorCompensationMode; /** - * offset 1783 + * offset 1715 */ pin_output_mode_e fan2PinMode; /** * This is the pressure at which your injector flow is known. * For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here. kPa - * offset 1784 + * offset 1716 */ float fuelReferencePressure; /** * Fuel multiplier (enrichment) immediately after engine start mult - * offset 1788 + * offset 1720 */ float postCrankingFactor; /** * Time over which to taper out after start enrichment seconds - * offset 1792 + * offset 1724 */ float postCrankingDurationSec; /** - * offset 1796 + * offset 1728 */ ThermistorConf auxTempSensor1; /** - * offset 1828 + * offset 1760 */ ThermistorConf auxTempSensor2; /** Deg - * offset 1860 + * offset 1792 */ int16_t knockSamplingDuration; /** Hz - * offset 1862 + * offset 1794 */ int16_t etbFreq; /** - * offset 1864 + * offset 1796 */ pid_s etbWastegatePid; /** * For micro-stepping, make sure that PWM frequency (etbFreq) is high enough - * offset 1884 + * offset 1816 */ stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) % - * offset 1885 + * offset 1817 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) % - * offset 1886 + * offset 1818 */ uint8_t stepperMaxDutyCycle; /** - * offset 1887 + * offset 1819 */ spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction deg - * offset 1888 + * offset 1820 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** seconds - * offset 1936 + * offset 1868 */ float idlePidActivationTime; /** - * offset 1940 + * offset 1872 */ pin_mode_e spi1SckMode; /** * Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc. - * offset 1941 + * offset 1873 */ pin_mode_e spi1MosiMode; /** - * offset 1942 + * offset 1874 */ pin_mode_e spi1MisoMode; /** - * offset 1943 + * offset 1875 */ pin_mode_e spi2SckMode; /** - * offset 1944 + * offset 1876 */ pin_mode_e spi2MosiMode; /** - * offset 1945 + * offset 1877 */ pin_mode_e spi2MisoMode; /** - * offset 1946 + * offset 1878 */ pin_mode_e spi3SckMode; /** - * offset 1947 + * offset 1879 */ pin_mode_e spi3MosiMode; /** - * offset 1948 + * offset 1880 */ pin_mode_e spi3MisoMode; /** - * offset 1949 + * offset 1881 */ pin_output_mode_e stepperEnablePinMode; /** * ResetB - * offset 1950 + * offset 1882 */ Gpio mc33816_rstb; /** - * offset 1952 + * offset 1884 */ Gpio mc33816_driven; /** * Brake pedal switch - * offset 1954 + * offset 1886 */ switch_input_pin_e brakePedalPin; /** - * lambda input - * offset 1956 - */ - adc_channel_e cj125ua; - /** - * heater input - * offset 1957 - */ - adc_channel_e cj125ur; - /** - * offset 1958 + * offset 1888 */ pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment units - * offset 1959 + * offset 1889 */ - uint8_t alignmentFill_at_1959[1]; + uint8_t alignmentFill_at_1889[3]; /** * VVT output PID * TODO: rename to vvtPid - * offset 1960 + * offset 1892 */ pid_s auxPid[CAMS_PER_BANK]; /** - * offset 2000 + * offset 1932 */ float injectorCorrectionPolynomial[8]; /** C - * offset 2032 + * offset 1964 */ int8_t primeBins[8]; /** - * offset 2040 + * offset 1972 */ linear_sensor_s oilPressure; /** - * offset 2060 + * offset 1992 */ spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment units - * offset 2061 + * offset 1993 */ - uint8_t alignmentFill_at_2061[1]; + uint8_t alignmentFill_at_1993[1]; /** - * offset 2062 + * offset 1994 */ output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius deg C - * offset 2064 + * offset 1996 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius deg C - * offset 2065 + * offset 1997 */ uint8_t fan2OffTemperature; /** - * offset 2066 + * offset 1998 */ Gpio stepperEnablePin; /** - * offset 2068 + * offset 2000 */ Gpio tle8888_cs; /** - * offset 2070 + * offset 2002 */ pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment units - * offset 2071 + * offset 2003 */ - uint8_t alignmentFill_at_2071[1]; + uint8_t alignmentFill_at_2003[1]; /** - * offset 2072 + * offset 2004 */ Gpio mc33816_cs; /** * need 4 byte alignment units - * offset 2074 + * offset 2006 */ - uint8_t alignmentFill_at_2074[2]; + uint8_t alignmentFill_at_2006[2]; /** - * offset 2076 + * offset 2008 */ float auxFrequencyFilter; /** RPM - * offset 2080 + * offset 2012 */ int16_t vvtControlMinRpm; /** - * offset 2082 + * offset 2014 */ brain_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - * offset 2084 + * offset 2016 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. sec - * offset 2085 + * offset 2017 */ scaled_channel etbJamTimeout; /** * By the way ETB PID runs at 500hz, length in 1/500 of second here. - * offset 2086 + * offset 2018 */ uint16_t etbExpAverageLength; /** - * offset 2088 + * offset 2020 */ float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. rpm - * offset 2092 + * offset 2024 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle rpm - * offset 2094 + * offset 2026 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. % - * offset 2096 + * offset 2028 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. C - * offset 2098 + * offset 2030 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; /** * iTerm max value - * offset 2510 + * offset 2438 */ int16_t idlerpmpid_iTermMax; /** * This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position. % - * offset 2512 + * offset 2440 */ float etbIdleThrottleRange; /** * Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor - * offset 2516 + * offset 2444 */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** mg - * offset 2528 + * offset 2456 */ scaled_channel primeValues[8]; /** * Trigger comparator center point voltage V - * offset 2536 + * offset 2464 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) V - * offset 2537 + * offset 2465 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) V - * offset 2538 + * offset 2466 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM RPM - * offset 2539 + * offset 2467 */ scaled_channel triggerCompSensorSatRpm; /** - * offset 2540 + * offset 2468 */ pid_s idleRpmPid2; /** - * set can_vss X - * offset 2560 + * offset 2488 */ can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment units - * offset 2561 + * offset 2489 */ - uint8_t alignmentFill_at_2561[3]; + uint8_t alignmentFill_at_2489[3]; /** - * offset 2564 + * offset 2492 */ gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current mA - * offset 2996 + * offset 2924 */ uint16_t mc33_i_boost; /** * Peak Current mA - * offset 2998 + * offset 2926 */ uint16_t mc33_i_peak; /** * Hold Current mA - * offset 3000 + * offset 2928 */ uint16_t mc33_i_hold; /** * 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. us - * offset 3002 + * offset 2930 */ uint16_t mc33_t_max_boost; /** us - * offset 3004 + * offset 2932 */ uint16_t mc33_t_peak_off; /** * Peak phase duration us - * offset 3006 + * offset 2934 */ uint16_t mc33_t_peak_tot; /** us - * offset 3008 + * offset 2936 */ uint16_t mc33_t_bypass; /** us - * offset 3010 + * offset 2938 */ uint16_t mc33_t_hold_off; /** * Hold phase duration us - * offset 3012 + * offset 2940 */ uint16_t mc33_t_hold_tot; /** - * offset 3014 + * offset 2942 */ pin_input_mode_e tcuUpshiftButtonPinMode; /** - * offset 3015 + * offset 2943 */ pin_input_mode_e tcuDownshiftButtonPinMode; /** - * offset 3016 + * offset 2944 */ pin_input_mode_e acSwitchMode; /** - * offset 3017 + * offset 2945 */ pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. dB - * offset 3023 + * offset 2951 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment units - * offset 3039 + * offset 2967 */ - uint8_t alignmentFill_at_3039[1]; + uint8_t alignmentFill_at_2967[1]; /** ratio - * offset 3040 + * offset 2968 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** ratio - * offset 3112 + * offset 3040 */ float triggerGapOverrideTo[GAP_TRACKING_LENGTH]; /** * 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. rpm - * offset 3184 + * offset 3112 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... sec - * offset 3185 + * offset 3113 */ scaled_channel dfcoDelay; /** * 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. sec - * offset 3186 + * offset 3114 */ scaled_channel acDelay; /** * need 4 byte alignment units - * offset 3187 + * offset 3115 */ - uint8_t alignmentFill_at_3187[1]; + uint8_t alignmentFill_at_3115[1]; /** mg - * offset 3188 + * offset 3116 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** multiplier - * offset 3190 + * offset 3118 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** % - * offset 3194 + * offset 3122 */ uint8_t etbJamIntegratorLimit; /** lobes/cam - * offset 3195 + * offset 3123 */ uint8_t hpfpCamLobes; /** - * offset 3196 + * offset 3124 */ hpfp_cam_e hpfpCam; /** * Crank angle ATDC of first lobe peak deg - * offset 3197 + * offset 3125 */ uint8_t hpfpPeakPos; /** * If the requested activation time is below this angle, don't bother running the pump deg - * offset 3198 + * offset 3126 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment units - * offset 3199 + * offset 3127 */ - uint8_t alignmentFill_at_3199[1]; + uint8_t alignmentFill_at_3127[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. cc - * offset 3200 + * offset 3128 */ scaled_channel hpfpPumpVolume; /** * How long to keep the valve activated (in order to allow the pump to build pressure and keep the valve open on its own) deg - * offset 3202 + * offset 3130 */ uint8_t hpfpActivationAngle; /** - * offset 3203 + * offset 3131 */ uint8_t issFilterReciprocal; /** %/kPa - * offset 3204 + * offset 3132 */ scaled_channel hpfpPidP; /** %/kPa/lobe - * offset 3206 + * offset 3134 */ scaled_channel hpfpPidI; /** * 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. kPa/s - * offset 3208 + * offset 3136 */ uint16_t hpfpTargetDecay; /** % - * offset 3210 + * offset 3138 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** deg - * offset 3226 + * offset 3154 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** volts - * offset 3242 + * offset 3170 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** ms - * offset 3250 + * offset 3178 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** kPa - * offset 3266 + * offset 3194 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** load - * offset 3466 + * offset 3394 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** RPM - * offset 3486 + * offset 3414 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** % - * offset 3496 + * offset 3424 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** cc/lobe - * offset 3596 + * offset 3524 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** RPM - * offset 3616 + * offset 3544 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; /** - * offset 3626 + * offset 3554 */ output_pin_e stepper_raw_output[4]; /** ratio - * offset 3634 + * offset 3562 */ scaled_channel gearRatio[GEARS_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT ms - * offset 3650 + * offset 3578 */ uint16_t vvtActivationDelayMs; /** deg C - * offset 3652 + * offset 3580 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; /** - * offset 3660 + * offset 3588 */ scaled_channel wwTauCltValues[WWAE_TABLE_SIZE]; /** - * offset 3668 + * offset 3596 */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** kPa - * offset 3676 + * offset 3604 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; /** - * offset 3684 + * offset 3612 */ scaled_channel wwTauMapValues[WWAE_TABLE_SIZE]; /** - * offset 3692 + * offset 3620 */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** Nm - * offset 3700 + * offset 3628 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** RPM - * offset 3736 + * offset 3664 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** Load - * offset 3748 + * offset 3676 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; /** - * offset 3760 + * offset 3688 */ GearControllerMode gearControllerMode; /** - * offset 3761 + * offset 3689 */ TransmissionControllerMode transmissionControllerMode; /** * need 4 byte alignment units - * offset 3762 + * offset 3690 */ - uint8_t alignmentFill_at_3762[2]; + uint8_t alignmentFill_at_3690[2]; /** - * offset 3764 + * offset 3692 */ linear_sensor_s auxLinear1; /** - * offset 3784 + * offset 3712 */ linear_sensor_s auxLinear2; /** - * offset 3804 + * offset 3732 */ output_pin_e tcu_tcc_onoff_solenoid; /** - * offset 3806 + * offset 3734 */ pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment units - * offset 3807 + * offset 3735 */ - uint8_t alignmentFill_at_3807[1]; + uint8_t alignmentFill_at_3735[1]; /** - * offset 3808 + * offset 3736 */ output_pin_e tcu_tcc_pwm_solenoid; /** - * offset 3810 + * offset 3738 */ pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment units - * offset 3811 + * offset 3739 */ - uint8_t alignmentFill_at_3811[1]; + uint8_t alignmentFill_at_3739[1]; /** - * offset 3812 + * offset 3740 */ pwm_freq_t tcu_tcc_pwm_solenoid_freq; /** - * offset 3814 + * offset 3742 */ output_pin_e tcu_pc_solenoid_pin; /** - * offset 3816 + * offset 3744 */ pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment units - * offset 3817 + * offset 3745 */ - uint8_t alignmentFill_at_3817[1]; + uint8_t alignmentFill_at_3745[1]; /** - * offset 3818 + * offset 3746 */ pwm_freq_t tcu_pc_solenoid_freq; /** - * offset 3820 + * offset 3748 */ output_pin_e tcu_32_solenoid_pin; /** - * offset 3822 + * offset 3750 */ pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment units - * offset 3823 + * offset 3751 */ - uint8_t alignmentFill_at_3823[1]; + uint8_t alignmentFill_at_3751[1]; /** - * offset 3824 + * offset 3752 */ pwm_freq_t tcu_32_solenoid_freq; /** * need 4 byte alignment units - * offset 3826 + * offset 3754 */ - uint8_t alignmentFill_at_3826[2]; + uint8_t alignmentFill_at_3754[2]; /** % - * offset 3828 + * offset 3756 */ float etbMinimumPosition; /** - * offset 3832 + * offset 3760 */ uint16_t tuneHidingKey; /** - * offset 3834 + * offset 3762 */ vin_number_t vinNumber; /** * need 4 byte alignment units - * offset 3851 + * offset 3779 */ - uint8_t alignmentFill_at_3851[1]; + uint8_t alignmentFill_at_3779[1]; /** - * offset 3852 + * offset 3780 */ uint16_t highSpeedOffsets[HIGH_SPEED_COUNT]; /** - * offset 3916 + * offset 3844 */ float etbDutyShutdownThreshold; /** - * offset 3920 + * offset 3848 */ Gpio luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** RPM - * offset 3936 + * offset 3864 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** rpm - * offset 3940 + * offset 3868 */ int16_t ALSMinRPM; /** rpm - * offset 3942 + * offset 3870 */ int16_t ALSMaxRPM; /** sec - * offset 3944 + * offset 3872 */ int16_t ALSMaxDuration; /** C - * offset 3946 + * offset 3874 */ int8_t ALSMinCLT; /** C - * offset 3947 + * offset 3875 */ int8_t ALSMaxCLT; /** - * offset 3948 + * offset 3876 */ uint8_t alsMinTimeBetween; /** - * offset 3949 + * offset 3877 */ uint8_t alsEtbPosition; /** - * offset 3950 + * offset 3878 */ uint8_t acRelayAlternatorDutyAdder; /** deg - * offset 3951 + * offset 3879 */ uint8_t instantRpmRange; /** - * offset 3952 + * offset 3880 */ uint8_t unusedA11lignmentFill_at_33; /** - * offset 3953 + * offset 3881 */ SentEtbType sentEtbType; /** * need 4 byte alignment units - * offset 3954 + * offset 3882 */ - uint8_t alignmentFill_at_3954[2]; + uint8_t alignmentFill_at_3882[2]; /** % - * offset 3956 + * offset 3884 */ int ALSIdleAdd; /** % - * offset 3960 + * offset 3888 */ int ALSEtbAdd; /** - * offset 3964 + * offset 3892 */ int ALSSkipRatio; /** % - * offset 3968 + * offset 3896 */ uint8_t ALSMaxDriverThrottleIntent; /** - * offset 3969 + * offset 3897 */ pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% % - * offset 3970 + * offset 3898 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% % - * offset 3971 + * offset 3899 */ scaled_channel ppsSecondaryMaximum; /** - * offset 3972 + * offset 3900 */ pin_input_mode_e luaDigitalInputPinModes[LUA_DIGITAL_INPUT_COUNT]; /** units - * offset 3980 + * offset 3908 */ uint8_t mainUnusedEnd[96]; }; -static_assert(sizeof(engine_configuration_s) == 4076); +static_assert(sizeof(engine_configuration_s) == 4004); // start of cyl_trim_s struct cyl_trim_s { @@ -4528,335 +4310,324 @@ struct persistent_config_s { * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method target TPS position - * offset 4076 + * offset 4004 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% ETB duty cycle bias - * offset 4108 + * offset 4036 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** % - * offset 4140 + * offset 4068 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** Load - * offset 4204 + * offset 4132 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** RPM - * offset 4212 + * offset 4140 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM RPM - * offset 4220 + * offset 4148 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** ms - * offset 4236 + * offset 4164 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller C - * offset 4252 + * offset 4180 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid RPM - * offset 4268 + * offset 4196 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction C - * offset 4284 + * offset 4212 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** degree - * offset 4316 + * offset 4244 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** x - * offset 4348 + * offset 4276 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** y - * offset 4412 + * offset 4340 */ float scriptCurve1[SCRIPT_CURVE_16]; /** x - * offset 4476 + * offset 4404 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** y - * offset 4540 + * offset 4468 */ float scriptCurve2[SCRIPT_CURVE_16]; /** x - * offset 4604 + * offset 4532 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** y - * offset 4636 + * offset 4564 */ float scriptCurve3[SCRIPT_CURVE_8]; /** x - * offset 4668 + * offset 4596 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** y - * offset 4700 + * offset 4628 */ float scriptCurve4[SCRIPT_CURVE_8]; /** x - * offset 4732 + * offset 4660 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** y - * offset 4764 + * offset 4692 */ float scriptCurve5[SCRIPT_CURVE_8]; /** x - * offset 4796 + * offset 4724 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** y - * offset 4828 + * offset 4756 */ float scriptCurve6[SCRIPT_CURVE_8]; /** kPa - * offset 4860 + * offset 4788 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** RPM - * offset 4876 + * offset 4804 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** ratio - * offset 4892 + * offset 4820 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS Ratio - * offset 4956 + * offset 4884 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** % - * offset 4988 + * offset 4916 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; - /** - * Narrow Band WBO Approximation - V - * offset 5020 - */ - float narrowToWideOxygenBins[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE]; - /** - ratio - * offset 5052 - */ - float narrowToWideOxygen[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) RPM - * offset 5084 + * offset 4948 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) deg - * offset 5092 + * offset 4956 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting RPM - * offset 5100 + * offset 4964 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting % - * offset 5116 + * offset 4980 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; /** - * offset 5132 + * offset 4996 */ error_message_t warning_message; /** C - * offset 5252 + * offset 5116 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** Seconds - * offset 5284 + * offset 5148 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** % - * offset 5316 + * offset 5180 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** Seconds - * offset 5348 + * offset 5212 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; /** - * offset 5380 + * offset 5244 */ scaled_channel boostTableOpenLoop[BOOST_RPM_COUNT][BOOST_LOAD_COUNT]; /** RPM - * offset 5444 + * offset 5308 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; /** - * offset 5452 + * offset 5316 */ scaled_channel boostTableClosedLoop[BOOST_RPM_COUNT][BOOST_LOAD_COUNT]; /** % - * offset 5516 + * offset 5380 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** % - * offset 5524 + * offset 5388 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** % - * offset 5588 + * offset 5452 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** RPM - * offset 5596 + * offset 5460 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller C - * offset 5604 + * offset 5468 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller % - * offset 5636 + * offset 5500 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) RPM - * offset 5668 + * offset 5532 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) deg - * offset 5676 + * offset 5540 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** RPM - * offset 5708 + * offset 5572 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** load - * offset 5712 + * offset 5576 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** % - * offset 5716 + * offset 5580 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; /** - * offset 5748 + * offset 5612 */ lua_script_t luaScript; /** C - * offset 13748 + * offset 13612 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** ratio - * offset 13812 + * offset 13676 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** C - * offset 13876 + * offset 13740 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** ratio - * offset 13940 + * offset 13804 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** ratio - * offset 14004 + * offset 13868 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** C - * offset 14036 + * offset 13900 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** ratio - * offset 14068 + * offset 13932 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** counter - * offset 14100 + * offset 13964 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller C - * offset 14132 + * offset 13996 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller ratio - * offset 14196 + * offset 14060 */ float cltIdleCorr[CLT_CURVE_SIZE]; /** @@ -4864,404 +4635,404 @@ struct persistent_config_s { * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m kg/hour - * offset 14260 + * offset 14124 */ float mafDecoding[MAF_DECODING_COUNT]; /** V - * offset 15284 + * offset 15148 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** deg - * offset 16308 + * offset 16172 */ scaled_channel ignitionIatCorrTable[8][8]; /** C - * offset 16372 + * offset 16236 */ int8_t ignitionIatCorrTempBins[8]; /** Load - * offset 16380 + * offset 16244 */ scaled_channel ignitionIatCorrLoadBins[8]; /** deg - * offset 16388 + * offset 16252 */ int16_t injectionPhase[IGN_RPM_COUNT][IGN_LOAD_COUNT]; /** Load - * offset 16900 + * offset 16764 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** RPM - * offset 16932 + * offset 16796 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** onoff - * offset 16964 + * offset 16828 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** kPa - * offset 17024 + * offset 16888 */ scaled_channel mapEstimateTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT]; /** % TPS - * offset 17536 + * offset 17400 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** RPM - * offset 17568 + * offset 17432 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** value - * offset 17600 + * offset 17464 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** L - * offset 17664 + * offset 17528 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** RPM - * offset 17680 + * offset 17544 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** value - * offset 17696 + * offset 17560 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** L - * offset 17760 + * offset 17624 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** RPM - * offset 17776 + * offset 17640 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** deg - * offset 17792 + * offset 17656 */ scaled_channel ignitionTable[IGN_RPM_COUNT][IGN_LOAD_COUNT]; /** Load - * offset 18304 + * offset 18168 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** RPM - * offset 18336 + * offset 18200 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** % - * offset 18368 + * offset 18232 */ scaled_channel veTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT]; /** kPa - * offset 18880 + * offset 18744 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** RPM - * offset 18912 + * offset 18776 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** lambda - * offset 18944 + * offset 18808 */ scaled_channel lambdaTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT]; /** - * offset 19200 + * offset 19064 */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** RPM - * offset 19232 + * offset 19096 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** value - * offset 19264 + * offset 19128 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** from - * offset 19520 + * offset 19384 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** to - * offset 19552 + * offset 19416 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** value - * offset 19584 + * offset 19448 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** L - * offset 19840 + * offset 19704 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** RPM - * offset 19856 + * offset 19720 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** value - * offset 19872 + * offset 19736 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** L - * offset 19936 + * offset 19800 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** RPM - * offset 19952 + * offset 19816 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** value - * offset 19968 + * offset 19832 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** L - * offset 20032 + * offset 19896 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** RPM - * offset 20048 + * offset 19912 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** value - * offset 20064 + * offset 19928 */ uint8_t scriptTable4[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** L - * offset 20128 + * offset 19992 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** RPM - * offset 20144 + * offset 20008 */ int16_t scriptTable4RpmBins[SCRIPT_TABLE_8]; /** - * offset 20160 + * offset 20024 */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** rpm - * offset 20168 + * offset 20032 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; /** - * offset 20176 + * offset 20040 */ cyl_trim_s ignTrims[12]; /** - * offset 20368 + * offset 20232 */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** rpm - * offset 20376 + * offset 20240 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; /** - * offset 20384 + * offset 20248 */ cyl_trim_s fuelTrims[12]; /** ratio - * offset 20576 + * offset 20440 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** Airmass - * offset 20592 + * offset 20456 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** % - * offset 20600 + * offset 20464 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** % - * offset 20608 + * offset 20472 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** % - * offset 20616 + * offset 20480 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** % - * offset 20624 + * offset 20488 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** % - * offset 20632 + * offset 20496 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** % - * offset 20640 + * offset 20504 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** % - * offset 20648 + * offset 20512 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** % - * offset 20656 + * offset 20520 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** % - * offset 20664 + * offset 20528 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** % - * offset 20672 + * offset 20536 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** % - * offset 20680 + * offset 20544 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** % - * offset 20688 + * offset 20552 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** TPS - * offset 20696 + * offset 20560 */ uint8_t tcu_tccTpsBins[8]; /** MPH - * offset 20704 + * offset 20568 */ uint8_t tcu_tccLockSpeed[8]; /** MPH - * offset 20712 + * offset 20576 */ uint8_t tcu_tccUnlockSpeed[8]; /** KPH - * offset 20720 + * offset 20584 */ uint8_t tcu_32SpeedBins[8]; /** % - * offset 20728 + * offset 20592 */ uint8_t tcu_32Vals[8]; /** % - * offset 20736 + * offset 20600 */ scaled_channel throttle2TrimTable[6][6]; /** % - * offset 20772 + * offset 20636 */ uint8_t throttle2TrimTpsBins[6]; /** RPM - * offset 20778 + * offset 20642 */ scaled_channel throttle2TrimRpmBins[6]; /** deg - * offset 20784 + * offset 20648 */ scaled_channel maxKnockRetardTable[6][6]; /** % - * offset 20820 + * offset 20684 */ uint8_t maxKnockRetardLoadBins[6]; /** RPM - * offset 20826 + * offset 20690 */ scaled_channel maxKnockRetardRpmBins[6]; /** deg - * offset 20832 + * offset 20696 */ scaled_channel ALSTimingRetardTable[4][4]; /** TPS - * offset 20864 + * offset 20728 */ uint16_t alsIgnRetardLoadBins[4]; /** RPM - * offset 20872 + * offset 20736 */ uint16_t alsIgnRetardrpmBins[4]; /** percent - * offset 20880 + * offset 20744 */ scaled_channel ALSFuelAdjustment[4][4]; /** TPS - * offset 20912 + * offset 20776 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** RPM - * offset 20920 + * offset 20784 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - * offset 20928 + * offset 20792 */ blend_table_s ignBlends[IGN_BLEND_COUNT]; /** - * offset 21680 + * offset 21544 */ blend_table_s veBlends[VE_BLEND_COUNT]; }; -static_assert(sizeof(persistent_config_s) == 22432); +static_assert(sizeof(persistent_config_s) == 22296); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Feb 20 21:09:11 PST 2023 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Feb 21 11:00:58 PST 2023 diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 9e09557ce8..4b59fd113d 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -188,15 +188,14 @@ #define cranking_parameters_s_size 8 #define CRITICAL_PREFIX "CRITICAL" #define cyl_trim_s_size 16 -#define dc_function_e_auto_enum 0="DC_None",3="DC_IdleValve",1="DC_Throttle1",2="DC_Throttle2",4="DC_Wastegate" -#define dc_function_e_DC_IdleValve 3 +#define dc_function_e_auto_enum 0="DC_None",1="DC_Throttle1",2="DC_Throttle2",3="DC_Wastegate" #define dc_function_e_DC_None 0 #define dc_function_e_DC_Throttle1 1 #define dc_function_e_DC_Throttle2 2 -#define dc_function_e_DC_Wastegate 4 +#define dc_function_e_DC_Wastegate 3 #define dc_io_size 8 #define DC_PER_STEPPER 2 -#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",16="DBG_16",2="DBG_2",20="DBG_20",24="DBG_24",26="DBG_26",29="DBG_29",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",7="DBG_7",8="DBG_8",9="DBG_9",21="DBG_ANALOG_INPUTS",32="DBG_ANALOG_INPUTS2",19="DBG_BENCH_TEST",25="DBG_CJ125",40="DBG_COMPOSITE_LOG",33="DBG_DWELL_METRIC",44="DBG_DYNO_VIEW",17="DBG_ELECTRONIC_THROTTLE_PID",4="DBG_EL_ACCEL",39="DBG_ETB_AUTOTUNE",18="DBG_EXECUTOR",22="DBG_INSTANT_RPM",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",13="DBG_SD_CARD",6="DBG_SOFT_SPARK_CUT",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",5="DBG_TRIGGER_COUNTERS",12="DBG_UNUSED12",41="DBG_UNUSED41",42="DBG_UNUSED_42",23="UNUSED23" +#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",16="DBG_16",2="DBG_2",20="DBG_20",24="DBG_24",25="DBG_25",26="DBG_26",29="DBG_29",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",7="DBG_7",8="DBG_8",9="DBG_9",21="DBG_ANALOG_INPUTS",32="DBG_ANALOG_INPUTS2",19="DBG_BENCH_TEST",40="DBG_COMPOSITE_LOG",33="DBG_DWELL_METRIC",44="DBG_DYNO_VIEW",17="DBG_ELECTRONIC_THROTTLE_PID",4="DBG_EL_ACCEL",39="DBG_ETB_AUTOTUNE",18="DBG_EXECUTOR",22="DBG_INSTANT_RPM",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",13="DBG_SD_CARD",6="DBG_SOFT_SPARK_CUT",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",5="DBG_TRIGGER_COUNTERS",12="DBG_UNUSED12",41="DBG_UNUSED41",42="DBG_UNUSED_42",23="UNUSED23" #define debug_mode_e_DBG_0 0 #define debug_mode_e_DBG_10 10 #define debug_mode_e_DBG_11 11 @@ -204,6 +203,7 @@ #define debug_mode_e_DBG_2 2 #define debug_mode_e_DBG_20 20 #define debug_mode_e_DBG_24 24 +#define debug_mode_e_DBG_25 25 #define debug_mode_e_DBG_26 26 #define debug_mode_e_DBG_29 29 #define debug_mode_e_DBG_34 34 @@ -219,7 +219,6 @@ #define debug_mode_e_DBG_ANALOG_INPUTS 21 #define debug_mode_e_DBG_ANALOG_INPUTS2 32 #define debug_mode_e_DBG_BENCH_TEST 19 -#define debug_mode_e_DBG_CJ125 25 #define debug_mode_e_DBG_COMPOSITE_LOG 40 #define debug_mode_e_DBG_DWELL_METRIC 33 #define debug_mode_e_DBG_DYNO_VIEW 44 @@ -245,25 +244,19 @@ #define debug_mode_e_DBG_UNUSED12 12 #define debug_mode_e_DBG_UNUSED41 41 #define debug_mode_e_DBG_UNUSED_42 42 -#define debug_mode_e_enum "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", "CJ125", "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" +#define debug_mode_e_enum "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" #define debug_mode_e_UNUSED23 23 -#define DIGIPOT_COUNT 4 -#define display_mode_e_auto_enum 0="DM_NONE",1="DM_HD44780",2="DM_HD44780_OVER_PCF8574" -#define display_mode_e_DM_HD44780 1 -#define display_mode_e_DM_HD44780_OVER_PCF8574 2 -#define display_mode_e_DM_NONE 0 #define DWELL_CURVE_SIZE 8 -#define ego_sensor_e_auto_enum 0="ES_BPSX_D1",2="ES_14Point7_Free",6="ES_AEM",5="ES_Custom",1="ES_Innovate_MTX_L",3="ES_NarrowBand",4="ES_PLX" -#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "Narrow", "PLX", "Custom" +#define ego_sensor_e_auto_enum 0="ES_BPSX_D1",2="ES_14Point7_Free",6="ES_AEM",5="ES_Custom",1="ES_Innovate_MTX_L",4="ES_PLX" +#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" #define ego_sensor_e_ES_14Point7_Free 2 #define ego_sensor_e_ES_AEM 6 #define ego_sensor_e_ES_BPSX_D1 0 #define ego_sensor_e_ES_Custom 5 #define ego_sensor_e_ES_Innovate_MTX_L 1 -#define ego_sensor_e_ES_NarrowBand 3 #define ego_sensor_e_ES_PLX 4 #define EGT_CHANNEL_COUNT 8 -#define engine_configuration_s_size 4076 +#define engine_configuration_s_size 4004 #define engine_load_mode_e_auto_enum 0="LM_SPEED_DENSITY",2="LM_ALPHA_N",3="LM_LUA",100="LM_MOCK",1="LM_REAL_MAF" #define engine_load_mode_e_enum "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" #define engine_load_mode_e_LM_ALPHA_N 2 @@ -394,7 +387,7 @@ #define ETB_BIAS_CURVE_LENGTH 8 #define ETB_COUNT 2 #define ETB_HW_MAX_FREQUENCY 3000 -#define FLASH_DATA_VERSION 10020 +#define FLASH_DATA_VERSION 20000 #define FUEL_LEVEL_TABLE_COUNT 8 #define FUEL_LOAD_COUNT 16 #define FUEL_RPM_COUNT 16 @@ -940,7 +933,6 @@ #define MLQ_HEADER_SIZE 24 #define MOCK_PPS_POSITION_COMMAND "mock_pps_position" #define MOCK_PPS_VOLTAGE_COMMAND "mock_pps_voltage" -#define NARROW_BAND_WIDE_BAND_CONVERSION_SIZE 8 #define operation_mode_e_FOUR_STROKE_CAM_SENSOR 2 #define operation_mode_e_FOUR_STROKE_CRANK_SENSOR 1 #define operation_mode_e_FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR 4 @@ -967,7 +959,7 @@ #define PACK_PERCENT_BYTE_MULT 100.0 #define PEDAL_TO_TPS_SIZE 8 #define PERCENT_TRIM_BYTE_PACKING_DIV 0.02 -#define persistent_config_s_size 22432 +#define persistent_config_s_size 22296 #define pid_s_size 20 #define PidAutoTune_AutoTunerState_AUTOTUNER_OFF 0 #define PidAutoTune_AutoTunerState_CONVERGED 16 @@ -1004,7 +996,6 @@ #define PROTOCOL_ES_DOWN "d" #define PROTOCOL_ES_UP "u" #define PROTOCOL_HELLO_PREFIX "***" -#define PROTOCOL_HIP_NAME "HIP" #define PROTOCOL_HPFP_NAME "hpfp" #define PROTOCOL_INJ1_SHORT_NAME "i1" #define PROTOCOL_MSG "msg" @@ -1054,7 +1045,7 @@ #define SentEtbType_NONE 0 #define show_Frankenso_presets true #define show_test_presets true -#define SIGNATURE_HASH 4145602307 +#define SIGNATURE_HASH 1490840425 #define specs_s_size 12 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 @@ -1101,7 +1092,7 @@ #define TOOTH_PACKET_SIZE 2 #define TOP_DEAD_CENTER_MESSAGE "r" #define TORQUE_CURVE_SIZE 6 -#define TOTAL_CONFIG_SIZE 22432 +#define TOTAL_CONFIG_SIZE 22296 #define TPS_2_BYTE_PACKING_MULT 100 #define TPS_TPS_ACCEL_CLT_CORR_TABLE 4 #define TPS_TPS_ACCEL_TABLE 8 @@ -1239,11 +1230,11 @@ #define ts_command_e_TS_SET_ENGINE_TYPE 30 #define ts_command_e_TS_SOLENOID_CATEGORY 25 #define ts_command_e_TS_UNUSED_23 23 +#define ts_command_e_TS_UNUSED_24 24 #define ts_command_e_TS_UNUSED_26 26 #define ts_command_e_TS_UNUSED_27 27 #define ts_command_e_TS_UNUSED_28 28 #define ts_command_e_TS_UNUSED_29 29 -#define ts_command_e_TS_UNUSED_CJ125_CALIB 24 #define ts_command_e_TS_WIDEBAND 21 #define ts_command_e_TS_WRITE_FLASH 10 #define ts_command_e_TS_X14 20 @@ -1305,16 +1296,13 @@ #define ts_show_auxserial_pins true #define ts_show_can2 true #define ts_show_can_pins true -#define ts_show_cj125 true #define ts_show_clt_iat_pullup true #define ts_show_critical_led true #define ts_show_egt true #define ts_show_etb true #define ts_show_etb_pins true #define ts_show_full_pinout true -#define ts_show_gps true #define ts_show_hardware_simulator true -#define ts_show_hip9011 true #define ts_show_ignitionPinMode true #define ts_show_injectionPinMode true #define ts_show_joystick true @@ -1330,7 +1318,7 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.f407-discovery.4145602307" +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.f407-discovery.1490840425" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' diff --git a/firmware/controllers/generated/signature_48way.h b/firmware/controllers/generated/signature_48way.h index a3ca3037a2..e7229e8d45 100644 --- a/firmware/controllers/generated/signature_48way.h +++ b/firmware/controllers/generated/signature_48way.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 806503109 -#define TS_SIGNATURE "rusEFI master.2023.02.21.48way.806503109" +#define SIGNATURE_HASH 1951006069 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.48way.1951006069" diff --git a/firmware/controllers/generated/signature_alphax-2chan.h b/firmware/controllers/generated/signature_alphax-2chan.h index b420f4cc75..ff5a111d8f 100644 --- a/firmware/controllers/generated/signature_alphax-2chan.h +++ b/firmware/controllers/generated/signature_alphax-2chan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3278362646 -#define TS_SIGNATURE "rusEFI master.2023.02.21.alphax-2chan.3278362646" +#define SIGNATURE_HASH 365720072 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.alphax-2chan.365720072" diff --git a/firmware/controllers/generated/signature_alphax-4chan.h b/firmware/controllers/generated/signature_alphax-4chan.h index 662586e13e..91853f4325 100644 --- a/firmware/controllers/generated/signature_alphax-4chan.h +++ b/firmware/controllers/generated/signature_alphax-4chan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1614705696 -#define TS_SIGNATURE "rusEFI master.2023.02.21.alphax-4chan.1614705696" +#define SIGNATURE_HASH 2667868265 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.alphax-4chan.2667868265" diff --git a/firmware/controllers/generated/signature_alphax-8chan.h b/firmware/controllers/generated/signature_alphax-8chan.h index 88d302f7d2..7337bda25a 100644 --- a/firmware/controllers/generated/signature_alphax-8chan.h +++ b/firmware/controllers/generated/signature_alphax-8chan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3414502332 -#define TS_SIGNATURE "rusEFI master.2023.02.21.alphax-8chan.3414502332" +#define SIGNATURE_HASH 3888084624 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.alphax-8chan.3888084624" diff --git a/firmware/controllers/generated/signature_atlas.h b/firmware/controllers/generated/signature_atlas.h index 781af20cca..19ae473e7e 100644 --- a/firmware/controllers/generated/signature_atlas.h +++ b/firmware/controllers/generated/signature_atlas.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2208117890 -#define TS_SIGNATURE "rusEFI master.2023.02.21.atlas.2208117890" +#define SIGNATURE_HASH 744063208 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.atlas.744063208" diff --git a/firmware/controllers/generated/signature_core8.h b/firmware/controllers/generated/signature_core8.h index 00f63374cc..c5817c1388 100644 --- a/firmware/controllers/generated/signature_core8.h +++ b/firmware/controllers/generated/signature_core8.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1290782665 -#define TS_SIGNATURE "rusEFI master.2023.02.21.core8.1290782665" +#define SIGNATURE_HASH 146045049 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.core8.146045049" diff --git a/firmware/controllers/generated/signature_f407-discovery.h b/firmware/controllers/generated/signature_f407-discovery.h index e28ed0a297..638ba46888 100644 --- a/firmware/controllers/generated/signature_f407-discovery.h +++ b/firmware/controllers/generated/signature_f407-discovery.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 4145602307 -#define TS_SIGNATURE "rusEFI master.2023.02.21.f407-discovery.4145602307" +#define SIGNATURE_HASH 1490840425 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.f407-discovery.1490840425" diff --git a/firmware/controllers/generated/signature_f429-discovery.h b/firmware/controllers/generated/signature_f429-discovery.h index fbbb7e87ac..5dae77a6fa 100644 --- a/firmware/controllers/generated/signature_f429-discovery.h +++ b/firmware/controllers/generated/signature_f429-discovery.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2673328549 -#define TS_SIGNATURE "rusEFI master.2023.02.21.f429-discovery.2673328549" +#define SIGNATURE_HASH 814970319 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.f429-discovery.814970319" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 4beadfbcc8..8a1ac2d75e 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3171230063 -#define TS_SIGNATURE "rusEFI master.2023.02.21.frankenso_na6.3171230063" +#define SIGNATURE_HASH 314676485 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.frankenso_na6.314676485" diff --git a/firmware/controllers/generated/signature_harley81.h b/firmware/controllers/generated/signature_harley81.h index dcf81e0f25..5dff26ad09 100644 --- a/firmware/controllers/generated/signature_harley81.h +++ b/firmware/controllers/generated/signature_harley81.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3093198061 -#define TS_SIGNATURE "rusEFI master.2023.02.21.harley81.3093198061" +#define SIGNATURE_HASH 3104198069 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.harley81.3104198069" diff --git a/firmware/controllers/generated/signature_hellen-gm-e67.h b/firmware/controllers/generated/signature_hellen-gm-e67.h index 9bf618a376..ad93cdfefe 100644 --- a/firmware/controllers/generated/signature_hellen-gm-e67.h +++ b/firmware/controllers/generated/signature_hellen-gm-e67.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3288537191 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen-gm-e67.3288537191" +#define SIGNATURE_HASH 1509579548 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen-gm-e67.1509579548" diff --git a/firmware/controllers/generated/signature_hellen-honda-k.h b/firmware/controllers/generated/signature_hellen-honda-k.h index e25661b0e5..737afa9bbe 100644 --- a/firmware/controllers/generated/signature_hellen-honda-k.h +++ b/firmware/controllers/generated/signature_hellen-honda-k.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2683679713 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen-honda-k.2683679713" +#define SIGNATURE_HASH 3261830493 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen-honda-k.3261830493" diff --git a/firmware/controllers/generated/signature_hellen-nb1.h b/firmware/controllers/generated/signature_hellen-nb1.h index 42a54f884f..0e90c12ea2 100644 --- a/firmware/controllers/generated/signature_hellen-nb1.h +++ b/firmware/controllers/generated/signature_hellen-nb1.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1974489380 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen-nb1.1974489380" +#define SIGNATURE_HASH 3350488179 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen-nb1.3350488179" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index 9224d608a2..10dc2556a3 100644 --- a/firmware/controllers/generated/signature_hellen121nissan.h +++ b/firmware/controllers/generated/signature_hellen121nissan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3712712867 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen121nissan.3712712867" +#define SIGNATURE_HASH 3077556281 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen121nissan.3077556281" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index d0c9a87ad7..63a9129b07 100644 --- a/firmware/controllers/generated/signature_hellen121vag.h +++ b/firmware/controllers/generated/signature_hellen121vag.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 284408037 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen121vag.284408037" +#define SIGNATURE_HASH 460113898 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen121vag.460113898" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 45dd01b83f..8ca428b960 100644 --- a/firmware/controllers/generated/signature_hellen128.h +++ b/firmware/controllers/generated/signature_hellen128.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 962601950 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen128.962601950" +#define SIGNATURE_HASH 2952860776 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen128.2952860776" diff --git a/firmware/controllers/generated/signature_hellen154hyundai.h b/firmware/controllers/generated/signature_hellen154hyundai.h index dac38287e5..b6983ba449 100644 --- a/firmware/controllers/generated/signature_hellen154hyundai.h +++ b/firmware/controllers/generated/signature_hellen154hyundai.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3244824385 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen154hyundai.3244824385" +#define SIGNATURE_HASH 620115081 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen154hyundai.620115081" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index c6876c381c..98f3f536f6 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1251116496 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen72.1251116496" +#define SIGNATURE_HASH 3240619128 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen72.3240619128" diff --git a/firmware/controllers/generated/signature_hellen81.h b/firmware/controllers/generated/signature_hellen81.h index 57b0f65332..a1fb2830d5 100644 --- a/firmware/controllers/generated/signature_hellen81.h +++ b/firmware/controllers/generated/signature_hellen81.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3650626296 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen81.3650626296" +#define SIGNATURE_HASH 1840092922 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen81.1840092922" diff --git a/firmware/controllers/generated/signature_hellen88bmw.h b/firmware/controllers/generated/signature_hellen88bmw.h index 2606152eea..9b672602ad 100644 --- a/firmware/controllers/generated/signature_hellen88bmw.h +++ b/firmware/controllers/generated/signature_hellen88bmw.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2377312116 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellen88bmw.2377312116" +#define SIGNATURE_HASH 1804960201 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellen88bmw.1804960201" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index 67a424de51..d30611beb9 100644 --- a/firmware/controllers/generated/signature_hellenNA6.h +++ b/firmware/controllers/generated/signature_hellenNA6.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3053259134 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellenNA6.3053259134" +#define SIGNATURE_HASH 589509704 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellenNA6.589509704" diff --git a/firmware/controllers/generated/signature_hellenNA8_96.h b/firmware/controllers/generated/signature_hellenNA8_96.h index d25df78021..fc2d7c6c53 100644 --- a/firmware/controllers/generated/signature_hellenNA8_96.h +++ b/firmware/controllers/generated/signature_hellenNA8_96.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2653223234 -#define TS_SIGNATURE "rusEFI master.2023.02.21.hellenNA8_96.2653223234" +#define SIGNATURE_HASH 2676442104 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.hellenNA8_96.2676442104" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 7b8a15e8c8..e5dcc24227 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1005445206 -#define TS_SIGNATURE "rusEFI master.2023.02.21.mre_f4.1005445206" +#define SIGNATURE_HASH 336667820 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.mre_f4.336667820" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 9e03978524..63dc8c8d9c 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1005445206 -#define TS_SIGNATURE "rusEFI master.2023.02.21.mre_f7.1005445206" +#define SIGNATURE_HASH 336667820 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.mre_f7.336667820" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 86fc297ebd..72f660a8a2 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3485276227 -#define TS_SIGNATURE "rusEFI master.2023.02.21.prometheus_405.3485276227" +#define SIGNATURE_HASH 505951 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.prometheus_405.505951" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 047b71f758..f07d11178d 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3485276227 -#define TS_SIGNATURE "rusEFI master.2023.02.21.prometheus_469.3485276227" +#define SIGNATURE_HASH 505951 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.prometheus_469.505951" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 3fdc243a59..d08328db79 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2979027026 -#define TS_SIGNATURE "rusEFI master.2023.02.21.proteus_f4.2979027026" +#define SIGNATURE_HASH 1393422530 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.proteus_f4.1393422530" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index cd7994e20c..79a3fb05f5 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2979027026 -#define TS_SIGNATURE "rusEFI master.2023.02.21.proteus_f7.2979027026" +#define SIGNATURE_HASH 1393422530 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.proteus_f7.1393422530" diff --git a/firmware/controllers/generated/signature_proteus_h7.h b/firmware/controllers/generated/signature_proteus_h7.h index 8674acaeca..753e8dedac 100644 --- a/firmware/controllers/generated/signature_proteus_h7.h +++ b/firmware/controllers/generated/signature_proteus_h7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2979027026 -#define TS_SIGNATURE "rusEFI master.2023.02.21.proteus_h7.2979027026" +#define SIGNATURE_HASH 1393422530 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.proteus_h7.1393422530" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index 9012153348..db1697538a 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_subaru_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3968504584 -#define TS_SIGNATURE "rusEFI master.2023.02.21.subaru_eg33_f7.3968504584" +#define SIGNATURE_HASH 3048760128 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.subaru_eg33_f7.3048760128" diff --git a/firmware/controllers/generated/signature_tdg-pdm8.h b/firmware/controllers/generated/signature_tdg-pdm8.h index 10aab167a7..3427c1fdc6 100644 --- a/firmware/controllers/generated/signature_tdg-pdm8.h +++ b/firmware/controllers/generated/signature_tdg-pdm8.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 368700807 -#define TS_SIGNATURE "rusEFI master.2023.02.21.tdg-pdm8.368700807" +#define SIGNATURE_HASH 3124582893 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.02.21.tdg-pdm8.3124582893" diff --git a/firmware/controllers/lua/generated/output_lookup_generated.cpp b/firmware/controllers/lua/generated/output_lookup_generated.cpp index d7a08ced7e..9957df05c4 100644 --- a/firmware/controllers/lua/generated/output_lookup_generated.cpp +++ b/firmware/controllers/lua/generated/output_lookup_generated.cpp @@ -41,8 +41,6 @@ float getOutputValueByName(const char *name) { return engine->outputChannels.isWarnNow; case -2035612655: return engine->outputChannels.isPedalError; - case 1830366389: - return engine->outputChannels.isKnockChipOk; case -52473827: return engine->outputChannels.launchTriggered; case -1529936844: @@ -155,8 +153,6 @@ float getOutputValueByName(const char *name) { return engine->outputChannels.engineMode; case 799075048: return engine->outputChannels.firmwareVersion; - case -677561380: - return engine->outputChannels.rawIdlePositionSensor; case 2039421097: return engine->outputChannels.rawWastegatePosition; case 633018087: @@ -229,8 +225,6 @@ float getOutputValueByName(const char *name) { return engine->outputChannels.flexPercent; case 53406649: return engine->outputChannels.wastegatePositionSensor; - case 782384530: - return engine->outputChannels.idlePositionSensor; case -148455898: return engine->outputChannels.rawLowFuelPressure; case 990714516: diff --git a/firmware/controllers/lua/generated/value_lookup_generated.cpp b/firmware/controllers/lua/generated/value_lookup_generated.cpp index edb03220d5..1c6cf3f3c1 100644 --- a/firmware/controllers/lua/generated/value_lookup_generated.cpp +++ b/firmware/controllers/lua/generated/value_lookup_generated.cpp @@ -43,22 +43,12 @@ float getConfigValueByName(const char *name) { return engineConfiguration->disableFan2WhenStopped; case -1409016614: return engineConfiguration->enableTrailingSparks; - case 119246268: - return engineConfiguration->isCJ125Verbose; - case 1627431605: - return engineConfiguration->cj125isUaDivided; - case -1780521945: - return engineConfiguration->cj125isLsu49; case -1334689362: return engineConfiguration->etb_use_two_wires; case 1097520823: return engineConfiguration->isDoubleSolenoidIdle; case -1572546086: return engineConfiguration->useEeprom; - case 291489190: - return engineConfiguration->cj125isUrDivided; - case -264572349: - return engineConfiguration->useCicPidForIdle; case -1279270887: return engineConfiguration->useTLE8888_cranking_hack; case 1156367906: @@ -139,8 +129,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->iat.config.bias_resistor; case 1226423210: return engineConfiguration->launchTimingRetard; - case -1310663509: - return engineConfiguration->hip9011PrescalerAndSDO; case -1738843157: return engineConfiguration->knockBandCustom; case -962678774: @@ -183,10 +171,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->canSleepPeriodMs; case 171869155: return engineConfiguration->byFirmwareVersion; - case -526236296: - return engineConfiguration->HD44780width; - case -777537519: - return engineConfiguration->HD44780height; case -1269130308: return engineConfiguration->idle_derivativeFilterLoss; case 274318471: @@ -249,10 +233,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->wastegatePositionMin; case 2097342437: return engineConfiguration->wastegatePositionMax; - case -1256791716: - return engineConfiguration->idlePositionMin; - case -1256791970: - return engineConfiguration->idlePositionMax; case 1467553180: return engineConfiguration->tunerStudioSerialSpeed; case 355839382: @@ -271,8 +251,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->rusefiVerbose29b; case 630961411: return engineConfiguration->isEngineControlEnabled; - case -2119647784: - return engineConfiguration->isHip9011Enabled; case -956913549: return engineConfiguration->isVerboseAlternator; case -1055678778: @@ -281,18 +259,12 @@ float getConfigValueByName(const char *name) { return engineConfiguration->useStepperIdle; case -2068213709: return engineConfiguration->enabledStep1Limiter; - case -1037977635: - return engineConfiguration->useTpicAdvancedMode; - case -538782875: - return engineConfiguration->useLcdScreen; case -1251676000: return engineConfiguration->verboseTLE8888; case 1643181024: return engineConfiguration->enableVerboseCanTx; case -432676169: return engineConfiguration->etb1configured; - case -28818575: - return engineConfiguration->isCJ125Enabled; case 1804769272: return engineConfiguration->etb2configured; case -1236202550: @@ -317,8 +289,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->pauseEtbControl; case 1836072195: return engineConfiguration->alignEngineSnifferAtTDC; - case 1064399425: - return engineConfiguration->idleIncrementalPidCic; case 259909218: return engineConfiguration->enableAemXSeries; case 6238478: @@ -363,10 +333,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->multisparkEnable; case -1583589783: return engineConfiguration->enableLaunchRetard; - case -246028069: - return engineConfiguration->unfinishedenableLaunchBoost; - case 963548365: - return engineConfiguration->unfinishedlaunchDisableBySpeed; case 245947066: return engineConfiguration->enableCanVss; case 1382521617: @@ -893,8 +859,6 @@ float getConfigValueByName(const char *name) { return engineConfiguration->tChargeAirIncrLimit; case 670644444: return engineConfiguration->tChargeAirDecrLimit; - case 929810608: - return engineConfiguration->hip9011Gain; case -1725192476: return engineConfiguration->etb_iTermMin; case -1725192730: @@ -1154,21 +1118,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->enableTrailingSparks = (int)value; return; - } - case 119246268: - { - engineConfiguration->isCJ125Verbose = (int)value; - return; - } - case 1627431605: - { - engineConfiguration->cj125isUaDivided = (int)value; - return; - } - case -1780521945: - { - engineConfiguration->cj125isLsu49 = (int)value; - return; } case -1334689362: { @@ -1184,16 +1133,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->useEeprom = (int)value; return; - } - case 291489190: - { - engineConfiguration->cj125isUrDivided = (int)value; - return; - } - case -264572349: - { - engineConfiguration->useCicPidForIdle = (int)value; - return; } case -1279270887: { @@ -1394,11 +1333,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->launchTimingRetard = (int)value; return; - } - case -1310663509: - { - engineConfiguration->hip9011PrescalerAndSDO = (int)value; - return; } case -1738843157: { @@ -1504,16 +1438,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->byFirmwareVersion = (int)value; return; - } - case -526236296: - { - engineConfiguration->HD44780width = (int)value; - return; - } - case -777537519: - { - engineConfiguration->HD44780height = (int)value; - return; } case -1269130308: { @@ -1669,16 +1593,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->wastegatePositionMax = (int)value; return; - } - case -1256791716: - { - engineConfiguration->idlePositionMin = (int)value; - return; - } - case -1256791970: - { - engineConfiguration->idlePositionMax = (int)value; - return; } case 1467553180: { @@ -1724,11 +1638,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->isEngineControlEnabled = (int)value; return; - } - case -2119647784: - { - engineConfiguration->isHip9011Enabled = (int)value; - return; } case -956913549: { @@ -1749,16 +1658,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->enabledStep1Limiter = (int)value; return; - } - case -1037977635: - { - engineConfiguration->useTpicAdvancedMode = (int)value; - return; - } - case -538782875: - { - engineConfiguration->useLcdScreen = (int)value; - return; } case -1251676000: { @@ -1774,11 +1673,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->etb1configured = (int)value; return; - } - case -28818575: - { - engineConfiguration->isCJ125Enabled = (int)value; - return; } case 1804769272: { @@ -1839,11 +1733,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->alignEngineSnifferAtTDC = (int)value; return; - } - case 1064399425: - { - engineConfiguration->idleIncrementalPidCic = (int)value; - return; } case 259909218: { @@ -1954,16 +1843,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->enableLaunchRetard = (int)value; return; - } - case -246028069: - { - engineConfiguration->unfinishedenableLaunchBoost = (int)value; - return; - } - case 963548365: - { - engineConfiguration->unfinishedlaunchDisableBySpeed = (int)value; - return; } case 245947066: { @@ -3279,11 +3158,6 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->tChargeAirDecrLimit = value; return; - } - case 929810608: - { - engineConfiguration->hip9011Gain = value; - return; } case -1725192476: { diff --git a/firmware/controllers/lua/generated/value_lookup_generated.md b/firmware/controllers/lua/generated/value_lookup_generated.md index 57a6191112..ed1b860fe3 100644 --- a/firmware/controllers/lua/generated/value_lookup_generated.md +++ b/firmware/controllers/lua/generated/value_lookup_generated.md @@ -5,10 +5,10 @@ Disable sensor sniffer above this rpm 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 +Engine sniffer would be disabled above this rpm ### multisparkMaxRpm Disable multispark above this engine speed. @@ -58,15 +58,6 @@ 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). -### isCJ125Verbose -enable cj125verbose/disable cj125verbose - -### cj125isUaDivided -Is your UA CJ125 output wired to MCU via resistor divider? Ua can go over 3.3v but only at lambda >3, i.e very lean AFR above 44.1\nWhen exposed to free air and 17x gain, Ua will be 4.17 volt - -### cj125isLsu49 - - ### etb_use_two_wires TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. @@ -76,12 +67,6 @@ Subaru/BMW style where default valve position is somewhere in the middle. First ### useEeprom -### cj125isUrDivided -Is your UR CJ125 output wired to MCU via resistor divider?\nLooks like 3v range should be enough, divider generally not needed. - -### useCicPidForIdle -Switch between Industrial and Cic PID implementation - ### useTLE8888_cranking_hack @@ -125,10 +110,10 @@ Experimental setting that will cause a misfire\nDO NOT ENABLE. 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 +Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel ### tpsMax -Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X +Full throttle.\nSee also tps1_1AdcChannel ### tpsErrorDetectionTooLow TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped. @@ -140,7 +125,7 @@ TPS error detection: what throttle % is unrealistically high?\nAlso used for acc 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 +This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. ### ignitionDwellForCrankingMs Dwell duration while cranking @@ -202,9 +187,6 @@ Pull-up resistor value on your board ### launchTimingRetard -### 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 @@ -230,7 +212,7 @@ Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, a 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 +Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nThere is tapering towards running timing advance ### gapTrackingLengthOverride How many consecutive gap rations have to match expected ranges for sync to happen @@ -245,7 +227,7 @@ Expected oil pressure after starting the engine. If oil pressure does not reach 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 +Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchnization point before TDC and negative in case of synchnization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC. ### analogInputDividerCoefficient Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v. @@ -268,12 +250,6 @@ CANbus thread period in ms ### byFirmwareVersion -### HD44780width - - -### HD44780height - - ### idle_derivativeFilterLoss 0.1 is a good default value @@ -296,7 +272,7 @@ Single value to be used in event of a failed MAP sensor \nThis value is only use 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. ### globalFuelCorrection -set global_fuel_correction X + ### adcVcc @@ -367,12 +343,6 @@ 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 @@ -400,9 +370,6 @@ Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format. ### isEngineControlEnabled -### isHip9011Enabled - - ### isVerboseAlternator @@ -415,12 +382,6 @@ This setting should only be used if you have a stepper motor idle valve and a st ### enabledStep1Limiter -### useTpicAdvancedMode - - -### useLcdScreen - - ### verboseTLE8888 @@ -430,9 +391,6 @@ CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_bro ### etb1configured -### isCJ125Enabled -enable cj125/disable cj125 - ### etb2configured @@ -469,9 +427,6 @@ Disable the electronic throttle motor and DC idle motor for testing.\nThis mode ### alignEngineSnifferAtTDC -### idleIncrementalPidCic - - ### enableAemXSeries AEM X-Series or rusEFI Wideband @@ -538,12 +493,6 @@ If enabled we use two H-bridges to drive stepper idle air valve ### enableLaunchRetard -### unfinishedenableLaunchBoost - - -### unfinishedlaunchDisableBySpeed - - ### enableCanVss Read VSS from OEM CAN bus according to selected CAN vehicle configuration. @@ -554,7 +503,7 @@ 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. +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. ### vvtBooleanForVerySpecialCases @@ -899,7 +848,7 @@ If increased VVT duty cycle increases the indicated VVT angle, set this to 'adva 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 + ### knockDetectionWindowStart @@ -971,10 +920,10 @@ Output Max Duty Cycle 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 +Closed throttle#2. todo: extract these two fields into a structure\nSee also tps2_1AdcChannel ### tps2Max -Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel\nset tps2_max X +Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel ### tachPulsePerRev @@ -1333,9 +1282,6 @@ Maximum allowed rate of increase allowed for the estimated charge temperature ### tChargeAirDecrLimit Maximum allowed rate of decrease allowed for the estimated charge temperature -### hip9011Gain - - ### etb_iTermMin iTerm min value diff --git a/firmware/controllers/sensors/auto_generated_sensor.cpp b/firmware/controllers/sensors/auto_generated_sensor.cpp index 049ab2d5e4..a8690a0d9a 100644 --- a/firmware/controllers/sensors/auto_generated_sensor.cpp +++ b/firmware/controllers/sensors/auto_generated_sensor.cpp @@ -1,6 +1,6 @@ #include "global.h" #include "sensor_type.h" -// was generated automatically by rusEFI tool from sensor_type.h // by enum2string.jar tool on Tue Feb 21 02:38:56 UTC 2023 +// was generated automatically by rusEFI tool from sensor_type.h // by enum2string.jar tool on Tue Feb 21 11:00:43 PST 2023 // see also gen_config_and_enums.bat @@ -13,8 +13,6 @@ case SensorType::AcceleratorPedalPrimary: return "AcceleratorPedalPrimary"; case SensorType::AcceleratorPedalSecondary: return "AcceleratorPedalSecondary"; -case SensorType::AnalogTps1: - return "AnalogTps1"; case SensorType::AuxAnalog1: return "AuxAnalog1"; case SensorType::AuxAnalog2: @@ -67,8 +65,6 @@ case SensorType::FuelPressureLow: return "FuelPressureLow"; case SensorType::Iat: return "Iat"; -case SensorType::IdlePosition: - return "IdlePosition"; case SensorType::InputShaftSpeed: return "InputShaftSpeed"; case SensorType::Invalid: @@ -103,8 +99,6 @@ case SensorType::PlaceholderLast: return "PlaceholderLast"; case SensorType::Rpm: return "Rpm"; -case SensorType::SentTps1: - return "SentTps1"; case SensorType::Tps1: return "Tps1"; case SensorType::Tps1Primary: diff --git a/firmware/tunerstudio/generated/fome_48way.ini b/firmware/tunerstudio/generated/fome_48way.ini new file mode 100644 index 0000000000..7bbc3fe8b0 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_48way.ini @@ -0,0 +1,7993 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.48way.1951006069" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.48way.1951006069" ; 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 Tue Feb 21 11:00:53 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +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",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +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",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +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], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +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",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +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], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +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",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",72="Camshaft Input (E6)",67="Clutch Input (E1)",47="CrankShaft Input (C13)",70="Launch Control (E4)",3="TPS Reference Input (A1)" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",72="Camshaft Input (E6)",47="CrankShaft Input (C13)" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",10="BARO Pressure Reference Input (B1)",1="Battery Reference Input (A0)",3="CLT Reference Input (A2)",15="Fuel Pressure Reference Input (C4)",4="IAT Reference Input (A3)",9="MAP Pressure Reference Input (B0)",5="O2 Reference Input (A4)",16="Oil Pressure Reference Input (C5)",2="TPS Reference Input (A1)" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 = "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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_alphax-2chan.ini b/firmware/tunerstudio/generated/fome_alphax-2chan.ini new file mode 100644 index 0000000000..c9226670f3 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_alphax-2chan.ini @@ -0,0 +1,7963 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.alphax-2chan.365720072" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.alphax-2chan.365720072" ; 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 Tue Feb 21 11:00:44 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +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",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +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",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +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], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +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",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +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], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +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",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",6="A2 Battery Sense",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",3="On-board MAP" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/2chan" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_alphax-4chan.ini b/firmware/tunerstudio/generated/fome_alphax-4chan.ini new file mode 100644 index 0000000000..5eb4ff6491 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_alphax-4chan.ini @@ -0,0 +1,7967 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.alphax-4chan.2667868265" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.alphax-4chan.2667868265" ; 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 Tue Feb 21 11:00:45 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +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",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +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",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +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], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +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",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +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], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +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",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",80="C2 - Crank- (hall)",78="C3 - Crank+ (hall)",93="C4 - 2Step/Digital",8="C7 - CAM Hall/Digital",85="D3 - Digital In 2",86="E3 - Digital In 3",87="E4 - Digital In 4",81="E6 - Cam+ (hall)",88="F3 - Digital In 5" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",80="C2 - Crank- (hall)",19="C2/C3 Crank Sensor VR",78="C3 - Crank+ (hall)",8="C7 - CAM Hall/Digital",91="E5/E6 Cam Sensor VR",81="E6 - Cam+ (hall)",9="E7 - Flex" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",12="B2 - MAP",14="B3 - IAT",2="B4 - O2",5="B5 - TPS",13="B7 - CLT",7="C7 - CAM Hall/Digital",9="D4 - TPS2",4="D5 - PPS",15="F6 - PPS2",6="F7 - Ignition Key Voltage",3="On-board MAP" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/4chan" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_alphax-8chan.ini b/firmware/tunerstudio/generated/fome_alphax-8chan.ini new file mode 100644 index 0000000000..9cdf2cfd1c --- /dev/null +++ b/firmware/tunerstudio/generated/fome_alphax-8chan.ini @@ -0,0 +1,7967 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.alphax-8chan.3888084624" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.alphax-8chan.3888084624" ; 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 Tue Feb 21 11:00:45 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +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",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +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",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +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], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +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",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +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], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +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",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",85="14B - Digital In 2",86="15B - Digital In 3",87="16B - Digital In 4",52="17B - Digital In Flex" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",8="23A - Hall Input 1",80="30A - Hall Input 2",4="30C - Hall Input 4",81="31A - Hall Input 3",12="8A - Crank VR",91="9A - Cam VR" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",10="14A - Analog 1",32="14D - AN4",14="15A - IAT",8="15D - AN5",13="16A - CLT",24="16D - AN6",4="17A - PPS",11="22A - Analog 22",5="23C - TPS",9="24C - TPS2",15="31C - PPS2",16="33A - AN3",31="6C - AT3",29="7C - AT4",6="Battery Sense" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/8chan" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_atlas.ini b/firmware/tunerstudio/generated/fome_atlas.ini new file mode 100644 index 0000000000..58bdf8d0a8 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_atlas.ini @@ -0,0 +1,7985 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.atlas.744063208" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.atlas.744063208" ; 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 Tue Feb 21 11:00:57 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +vbattAdcChannel = bits, U08, 445, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelSensor = bits, U08, 446, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_1AdcChannel = bits, U08, 447, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +afr_hwChannel2 = bits, U08, 497, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins2 = bits, U16, 570, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins3 = bits, U16, 572, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins4 = bits, U16, 574, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins5 = bits, U16, 576, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins6 = bits, U16, 578, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins7 = bits, U16, 580, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins8 = bits, U16, 582, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins9 = bits, U16, 584, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins10 = bits, U16, 586, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins11 = bits, U16, 588, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins12 = bits, U16, 590, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins1 = bits, U16, 592, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins2 = bits, U16, 594, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins3 = bits, U16, 596, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins4 = bits, U16, 598, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins5 = bits, U16, 600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins6 = bits, U16, 602, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins7 = bits, U16, 604, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins8 = bits, U16, 606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins9 = bits, U16, 608, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins10 = bits, U16, 610, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins11 = bits, U16, 612, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins12 = bits, U16, 614, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +clutchDownPin = 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" +alternatorControlPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps1_2AdcChannel = bits, U08, 642, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_2AdcChannel = bits, U08, 643, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +o2heaterPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid2 = bits, U16, 1122, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid3 = bits, U16, 1124, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid4 = bits, U16, 1126, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid5 = bits, U16, 1128, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid6 = bits, U16, 1130, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins2 = bits, U16, 1160, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins3 = bits, U16, 1162, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins4 = bits, U16, 1164, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins5 = bits, U16, 1166, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins6 = bits, U16, 1168, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins7 = bits, U16, 1170, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins8 = bits, U16, 1172, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0: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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins2 = bits, U16, 1634, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins3 = bits, U16, 1636, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins4 = bits, U16, 1638, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs2 = bits, U08, 1681, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs3 = bits, U08, 1682, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs4 = bits, U08, 1683, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs5 = bits, U08, 1684, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs6 = bits, U08, 1685, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs7 = bits, U08, 1686, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs8 = bits, U08, 1687, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +trailingCoilPins1 = bits, U16, 1688, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins2 = bits, U16, 1690, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins3 = bits, U16, 1692, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins4 = bits, U16, 1694, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins5 = bits, U16, 1696, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins6 = bits, U16, 1698, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins7 = bits, U16, 1700, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins8 = bits, U16, 1702, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins9 = bits, U16, 1704, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins10 = bits, U16, 1706, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins11 = bits, U16, 1708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins12 = bits, U16, 1710, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output2 = bits, U16, 3556, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output3 = bits, U16, 3558, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output4 = bits, U16, 3560, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_core8.ini b/firmware/tunerstudio/generated/fome_core8.ini new file mode 100644 index 0000000000..bdd6b11bc0 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_core8.ini @@ -0,0 +1,7993 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.core8.146045049" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.core8.146045049" ; 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 Tue Feb 21 11:00:52 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +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",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +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",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +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], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +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",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +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], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +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",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",87="Digital Input 1 (F5)",86="Digital Input 2 (F4)",85="Digital Input 3 (F3)",84="Digital Input 4 (F2)",83="Digital Input 5 (F1)",82="Digital Input 6 (F0)",72="Digital Input 7 (E6)",47="Digital Input 8 (C13)",68="VR/Hall 1 (E2)",69="VR/Hall 2 (E3)",70="VR/Hall 3 (E4)",71="VR/Hall 4 (E5)" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",2="Analog Inputs 1 (A1)",11="Analog Inputs 10 (C0)",14="Analog Inputs 13 (C3)",15="Analog Inputs 14 (C4)",16="Analog Inputs 15 (C5)",3="Analog Inputs 2 (A2)",4="Analog Inputs 3 (A3)",5="Analog Inputs 4 (A4)",7="Analog Inputs 6 (A6)",8="Analog Inputs 7 (A7)",10="Analog Inputs 9 (B1)",9="On-board BARO (B0)",1="On-board Battery Sense (A0)",6="On-board MAP (A5)",12="Primary On-board O2 (C1)",13="Secondary On-board O2 (C2)" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 = "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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_f407-discovery.ini b/firmware/tunerstudio/generated/fome_f407-discovery.ini new file mode 100644 index 0000000000..78f43add61 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_f407-discovery.ini @@ -0,0 +1,7996 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.f407-discovery.1490840425" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.f407-discovery.1490840425" ; 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 Tue Feb 21 11:00:56 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +vbattAdcChannel = bits, U08, 445, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelSensor = bits, U08, 446, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_1AdcChannel = bits, U08, 447, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +afr_hwChannel2 = bits, U08, 497, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins2 = bits, U16, 570, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins3 = bits, U16, 572, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins4 = bits, U16, 574, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins5 = bits, U16, 576, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins6 = bits, U16, 578, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins7 = bits, U16, 580, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins8 = bits, U16, 582, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins9 = bits, U16, 584, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins10 = bits, U16, 586, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins11 = bits, U16, 588, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins12 = bits, U16, 590, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins1 = bits, U16, 592, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins2 = bits, U16, 594, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins3 = bits, U16, 596, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins4 = bits, U16, 598, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins5 = bits, U16, 600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins6 = bits, U16, 602, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins7 = bits, U16, 604, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins8 = bits, U16, 606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins9 = bits, U16, 608, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins10 = bits, U16, 610, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins11 = bits, U16, 612, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins12 = bits, U16, 614, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +clutchDownPin = 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" +alternatorControlPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps1_2AdcChannel = bits, U08, 642, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_2AdcChannel = bits, U08, 643, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +o2heaterPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid2 = bits, U16, 1122, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid3 = bits, U16, 1124, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid4 = bits, U16, 1126, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid5 = bits, U16, 1128, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid6 = bits, U16, 1130, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins2 = bits, U16, 1160, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins3 = bits, U16, 1162, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins4 = bits, U16, 1164, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins5 = bits, U16, 1166, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins6 = bits, U16, 1168, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins7 = bits, U16, 1170, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins8 = bits, U16, 1172, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0: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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins2 = bits, U16, 1634, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins3 = bits, U16, 1636, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins4 = bits, U16, 1638, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs2 = bits, U08, 1681, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs3 = bits, U08, 1682, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs4 = bits, U08, 1683, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs5 = bits, U08, 1684, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs6 = bits, U08, 1685, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs7 = bits, U08, 1686, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs8 = bits, U08, 1687, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +trailingCoilPins1 = bits, U16, 1688, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins2 = bits, U16, 1690, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins3 = bits, U16, 1692, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins4 = bits, U16, 1694, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins5 = bits, U16, 1696, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins6 = bits, U16, 1698, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins7 = bits, U16, 1700, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins8 = bits, U16, 1702, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins9 = bits, U16, 1704, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins10 = bits, U16, 1706, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins11 = bits, U16, 1708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins12 = bits, U16, 1710, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output2 = bits, U16, 3556, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output3 = bits, U16, 3558, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output4 = bits, U16, 3560, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Critical Led", criticalLedPin + field = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Critical Led", criticalLedPin + field = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_f429-discovery.ini b/firmware/tunerstudio/generated/fome_f429-discovery.ini new file mode 100644 index 0000000000..7e2c80d1ab --- /dev/null +++ b/firmware/tunerstudio/generated/fome_f429-discovery.ini @@ -0,0 +1,7994 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.f429-discovery.814970319" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.f429-discovery.814970319" ; 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 Tue Feb 21 11:00:56 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +vbattAdcChannel = bits, U08, 445, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelSensor = bits, U08, 446, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_1AdcChannel = bits, U08, 447, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +afr_hwChannel2 = bits, U08, 497, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins2 = bits, U16, 570, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins3 = bits, U16, 572, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins4 = bits, U16, 574, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins5 = bits, U16, 576, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins6 = bits, U16, 578, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins7 = bits, U16, 580, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins8 = bits, U16, 582, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins9 = bits, U16, 584, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins10 = bits, U16, 586, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins11 = bits, U16, 588, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins12 = bits, U16, 590, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins1 = bits, U16, 592, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins2 = bits, U16, 594, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins3 = bits, U16, 596, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins4 = bits, U16, 598, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins5 = bits, U16, 600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins6 = bits, U16, 602, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins7 = bits, U16, 604, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins8 = bits, U16, 606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins9 = bits, U16, 608, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins10 = bits, U16, 610, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins11 = bits, U16, 612, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins12 = bits, U16, 614, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +clutchDownPin = 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" +alternatorControlPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps1_2AdcChannel = bits, U08, 642, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_2AdcChannel = bits, U08, 643, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +o2heaterPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid2 = bits, U16, 1122, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid3 = bits, U16, 1124, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid4 = bits, U16, 1126, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid5 = bits, U16, 1128, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid6 = bits, U16, 1130, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins2 = bits, U16, 1160, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins3 = bits, U16, 1162, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins4 = bits, U16, 1164, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins5 = bits, U16, 1166, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins6 = bits, U16, 1168, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins7 = bits, U16, 1170, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins8 = bits, U16, 1172, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0: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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins2 = bits, U16, 1634, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins3 = bits, U16, 1636, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins4 = bits, U16, 1638, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs2 = bits, U08, 1681, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs3 = bits, U08, 1682, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs4 = bits, U08, 1683, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs5 = bits, U08, 1684, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs6 = bits, U08, 1685, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs7 = bits, U08, 1686, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs8 = bits, U08, 1687, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +trailingCoilPins1 = bits, U16, 1688, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins2 = bits, U16, 1690, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins3 = bits, U16, 1692, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins4 = bits, U16, 1694, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins5 = bits, U16, 1696, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins6 = bits, U16, 1698, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins7 = bits, U16, 1700, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins8 = bits, U16, 1702, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins9 = bits, U16, 1704, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins10 = bits, U16, 1706, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins11 = bits, U16, 1708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins12 = bits, U16, 1710, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output2 = bits, U16, 3556, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output3 = bits, U16, 3558, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output4 = bits, U16, 3560, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_frankenso_na6.ini b/firmware/tunerstudio/generated/fome_frankenso_na6.ini new file mode 100644 index 0000000000..88374e3d31 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_frankenso_na6.ini @@ -0,0 +1,7994 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.frankenso_na6.314676485" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.frankenso_na6.314676485" ; 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 Tue Feb 21 11:00:53 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +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",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +clutchDownPin = 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" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",16="Analog 3E",8="Analog 3G",7="Analog 3H",5="Analog 3I",4="Analog 3J",2="Analog 3L",3="Analog 3M",14="Analog 3N",1="Analog 3O",12="Analog 3P",13="Analog 3Q",15="Analog VBatt" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_harley81.ini b/firmware/tunerstudio/generated/fome_harley81.ini new file mode 100644 index 0000000000..ad5613bc54 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_harley81.ini @@ -0,0 +1,7964 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.harley81.3104198069" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.harley81.3104198069" ; 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 Tue Feb 21 11:00:46 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +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",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +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",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +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], 0="NONE",88="11 Crank VR-",93="51 - VSS" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +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",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +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",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +clutchDownPin = 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" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +clutchUpPin = bits, U16, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",88="11 Crank VR-",93="51 - VSS" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",2="27 - TPS 2",15="32 Oil Pressure",16="34 Kickstand Position Sensor",4="41 - PPS 1",9="42 - PPS 2",13="49 CLT",6="5 Battery Sense",5="52 - TPS 1",11="53 - MAP",12="55 Engine Temperature",14="72 IAT" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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} + + 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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen NB1 36 wheel", cmd_set_engine_type_hellen_NB2_36 + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/harley81" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", 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 diff --git a/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini b/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini new file mode 100644 index 0000000000..416586efd5 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini @@ -0,0 +1,7965 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen-gm-e67.1509579548" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen-gm-e67.1509579548" ; 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 Tue Feb 21 11:00:50 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +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",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +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",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +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], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +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",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +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], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +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",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",92="C1-7 Stop/Brake Pedal",93="C3-66 - VSS Input" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",88="C2-59 - Cam",86="C2-63 - Crank" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",6="C1-19 Battery Sense",10="C1-44 Primary Fuel Level",7="C1-45 Secondary Fuel Level",16="C1-46 Vac Sense",4="C1-47 - PPS1",15="C1-49 - PPS2",2="C2-60 - Oil Pressure",5="C2-64 - TPS1",11="C2-65 - Trans Fluids",9="C2-66 - TPS2",13="C3-55 - CLT",14="C3-56 - IAT",8="C3-57 - A/C Pressure",3="C3-58 - Baro",12="C3-59 - MAP" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/gm-e67" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen-honda-k.ini b/firmware/tunerstudio/generated/fome_hellen-honda-k.ini new file mode 100644 index 0000000000..56909aa846 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen-honda-k.ini @@ -0,0 +1,7961 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen-honda-k.3261830493" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen-honda-k.3261830493" ; 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 Tue Feb 21 11:00:47 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +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="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +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="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +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], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +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="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +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], 0="NONE",8="E22 Brake" +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="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",8="E22 Brake" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",8="E22 Brake" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",8="E22 Brake" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",8="E22 Brake" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",8="E22 Brake" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",8="E22 Brake" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",8="E22 Brake" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",8="E22 Brake" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",8="E22 Brake" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",93="A18 - VSS",90="A25 VTT CAM",92="A26 Cam Sync",91="A7 Crankshaft Sensor" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",5="--- - TPS",11="A19 - MAP",14="B17 - IAT",13="B8 - CLT",6="E9 Ignition Key Voltage" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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} + + 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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen154hyuindai" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen-nb1.ini b/firmware/tunerstudio/generated/fome_hellen-nb1.ini new file mode 100644 index 0000000000..7f8c584dbb --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen-nb1.ini @@ -0,0 +1,7966 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen-nb1.3350488179" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen-nb1.3350488179" ; 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 Tue Feb 21 11:00:49 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +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",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +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",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +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], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +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",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +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], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +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",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",91="1F - Brake/RES1",92="1G - Steering/RES2",39="1P - AC Switch",80="1V - Neutral",18="2A - Pressure Input",79="3I - Clutch",85="3J - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",6="1B - Battery Sense",4="1G - Steering/RES2",16="1P - AC Switch",9="2A - Pressure Input",14="2B - IAT",1="2C - O2S",13="2E - Coolant",7="2H - CAM",10="2J - CRANK",11="2L - MAF",12="3D - MAP",5="3E - TPS",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",2="TPS1",3="intMAP" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen NB1 36 wheel", cmd_set_engine_type_hellen_NB2_36 + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellenNB1" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen121nissan.ini b/firmware/tunerstudio/generated/fome_hellen121nissan.ini new file mode 100644 index 0000000000..d3e56e9d36 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen121nissan.ini @@ -0,0 +1,7964 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen121nissan.3077556281" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen121nissan.3077556281" ; 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 Tue Feb 21 11:00:47 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +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",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +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",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +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], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +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",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +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], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +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",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",91="101 - Brake Input",92="102 - Power Steering Input" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",19="13 - Crank",8="14 - Cam Left",9="33 - Cam Right" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",4="106 - PPS 1",6="109 Ignition Key Voltage",14="34 - IAT",5="50 - TPS 1",1="51 - MAF",9="69 - TPS 2",13="73 - CLT",15="98 - PPS 2",11="Aux P66",12="Aux P67",3="Aux P68" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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} + + 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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen Nissan 4 cylinder", cmd_set_engine_type_hellen_nissan_121_4 + commandButton = "Hellen Nissan 6 cylinder", cmd_set_engine_type_hellen_nissan_121_6 + commandButton = "Hellen Nissan 8 cylinder", cmd_set_engine_type_hellen_nissan_121_8 + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen121nissan" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen121vag.ini b/firmware/tunerstudio/generated/fome_hellen121vag.ini new file mode 100644 index 0000000000..baccd6de4c --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen121vag.ini @@ -0,0 +1,7969 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen121vag.460113898" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen121vag.460113898" ; 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 Tue Feb 21 11:00:46 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +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",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +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",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +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], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +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",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +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], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +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",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",92="39 - IN RES2",91="48 - IN RES1",78="In D1",79="In D2",80="In D3",81="In D4" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",93="54 - VSS",19="82 - VR",8="86 - CAM1",9="87 - CAM2" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",12="101 - MAP2",6="106 - KNOCK",1="14 - O2",11="29 In Maf",4="34 In PPS1",15="35 In PPS2",9="84 - TPS2",14="85 - IAT",7="86 - CAM1",8="87 - CAM2",5="92 - TPS 1",13="93 - CLT" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen 121 VAG i4", cmd_set_engine_type_hellen_121_vag_4 + commandButton = "Hellen 121 VAG i5", cmd_set_engine_type_hellen_121_vag_5 + commandButton = "Hellen 121 VAG v6", cmd_set_engine_type_hellen_121_vag_v6 + commandButton = "Hellen 121 VAG vr6", cmd_set_engine_type_hellen_121_vag_vr6 + commandButton = "Hellen 121 VAG v8", cmd_set_engine_type_hellen_121_vag_8 + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen121vag" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen154hyundai.ini b/firmware/tunerstudio/generated/fome_hellen154hyundai.ini new file mode 100644 index 0000000000..cab5ada94a --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen154hyundai.ini @@ -0,0 +1,7963 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen154hyundai.620115081" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen154hyundai.620115081" ; 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 Tue Feb 21 11:00:48 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +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",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +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",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +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], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +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",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +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], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +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",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",90="A29 Brake Input",92="A43 Clutch Input",91="A57 AC Request" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",9="Cam - K15",8="Cam - K62 rev B",87="Cam - K62 rev C",19="Crank - K17 rev B",86="Crank - K17 rev C",93="K40 VSS" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",13="CLT",14="IAT",12="K10 Sensor",6="K2 Ignition Key Voltage",1="K21 Ambient Temperature",2="K58 Oil Temp",11="Map Sensor K31",4="PPS 1",15="PPS 2",5="TPS 1",9="TPS 2" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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} + + 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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen Genesis Couple BK1", cmd_set_engine_type_hellen_couple_bk1 + commandButton = "Hellen Genesis Couple BK2", cmd_set_engine_type_hellen_couple_bk2 + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen154hyuindai" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen72.ini b/firmware/tunerstudio/generated/fome_hellen72.ini new file mode 100644 index 0000000000..cbf8d0982a --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen72.ini @@ -0,0 +1,7966 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen72.3240619128" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen72.3240619128" ; 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 Tue Feb 21 11:00:49 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +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",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +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",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +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], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +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",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +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], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +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",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",91="4B - Brake/RES1 (A7)",18="4F - AC_PRES/AUX1 (A23)",90="4I - Clutch rev D",79="4I - Clutch rev E/F",9="4J - VTCS/AUX4 (A20)",34="5A - Pressure Input",87="5D - SENSOR INPUT",38="5M - PPS2 OR TEMPERATURE SENSOR",2="5N - TPS2",5="5P - PPS1" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",2="3L - IGN_7 / AFR",7="3V - CAM (A19)",10="3Y - CRANK (A24)",16="4AE - EGR/MAP4 (A22)",9="4F - AC_PRES/AUX1 (A23)",8="4J - VTCS/AUX4 (A20)",14="4N - IAT (A14)",13="4P - CLT (A11)",6="4S/4T - Alternator voltage",12="4U - MAP2/Ign8 (A10)",5="4V - TPS (A17)",11="4X - MAF (A9)",15="5M - PPS2 OR TEMPERATURE SENSOR",1="5N - TPS2",4="5P - PPS1",3="intMAP (A15)" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen NB2 36 wheel", cmd_set_engine_type_hellen_NB2_36 + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen72" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen81.ini b/firmware/tunerstudio/generated/fome_hellen81.ini new file mode 100644 index 0000000000..fcfd644667 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen81.ini @@ -0,0 +1,7962 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen81.1840092922" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen81.1840092922" ; 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 Tue Feb 21 11:00:49 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +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",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +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",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +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], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +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",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +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",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +clutchDownPin = 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" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +clutchUpPin = bits, U16, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",19="15 - IN_CRANK (A24)",93="59 - IN_VSS",18="74 - IN_AUX1",38="75 - IN_AUX2",39="76 - IN_AUX3",9="77 - IN_AUX4",8="79 - IN_CAM" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",6="13 - IN_VIGN",10="15 - IN_CRANK (A24)",5="16 - IN_TPS",1="18 - IN_O2S",11="37 - IN_MAP1",12="38 - IN_MAP2",13="39 - IN_CLT",14="40 - IN_IAT",3="41 - IN_MAP3",2="55 - IN_O2S2",9="74 - IN_AUX1",15="75 - IN_AUX2",16="76 - IN_AUX3",8="77 - IN_AUX4",4="78 - IN_PPS",7="79 - IN_CAM" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen81" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellen88bmw.ini b/firmware/tunerstudio/generated/fome_hellen88bmw.ini new file mode 100644 index 0000000000..ff531de694 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen88bmw.ini @@ -0,0 +1,7960 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen88bmw.1804960201" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen88bmw.1804960201" ; 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 Tue Feb 21 11:00:48 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +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",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +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",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +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], 0="NONE",19="16 - CRANK",8="17 - CAM" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +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",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +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], 0="NONE",2="VIN5",3="VIN6" +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",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",2="VIN5",3="VIN6" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",2="VIN5",3="VIN6" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",2="VIN5",3="VIN6" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",2="VIN5",3="VIN6" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",2="VIN5",3="VIN6" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",2="VIN5",3="VIN6" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",2="VIN5",3="VIN6" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",2="VIN5",3="VIN6" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",2="VIN5",3="VIN6" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",19="16 - CRANK",8="17 - CAM" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",10="16 - CRANK",7="17 - CAM",11="41 - MAF",6="56 - Battery Sense",5="73 - TPS",14="77 - IAT",13="78 - CLT",8="Aux BARO",12="Aux MAP",15="Aux PPS2",9="Aux TPS2",16="Aux TPS3",4="PPS1",1="VIN5",2="VIN6" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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} + + 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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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 = 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen88bmw" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellenNA6.ini b/firmware/tunerstudio/generated/fome_hellenNA6.ini new file mode 100644 index 0000000000..fb095782bf --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellenNA6.ini @@ -0,0 +1,7967 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellenNA6.589509704" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellenNA6.589509704" ; 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 Tue Feb 21 11:00:50 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +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",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +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",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +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], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +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",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +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], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +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",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",39="1Q AC Switch",38="1V - Clutch Switch",35="2M - Pressure Sensor",3="2N - Temperature Sensor",9="4G - PPS2 OR TEMPERATURE SENSOR",18="4H - TPS2",5="4I - PPS1" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",6="1B - Battery Sense",16="1Q AC Switch",15="1V - Clutch Switch",12="2M - Pressure Sensor",2="2N - Temperature Sensor",1="3N - O2S",11="3O - MAF",14="3P - IAT",13="3Q - CLT",8="4G - PPS2 OR TEMPERATURE SENSOR",9="4H - TPS2",4="4I - PPS1",5="TPS Input",3="intMAP (A15)" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen NA6", cmd_set_engine_type_hellen_NA6 + commandButton = "Hellen NA8 94-95", cmd_set_engine_type_hellen_NA94 + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellenNA6" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_hellenNA8_96.ini b/firmware/tunerstudio/generated/fome_hellenNA8_96.ini new file mode 100644 index 0000000000..00a34acef1 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellenNA8_96.ini @@ -0,0 +1,7965 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellenNA8_96.2676442104" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellenNA8_96.2676442104" ; 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 Tue Feb 21 11:00:51 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +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",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +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",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +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], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +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",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +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], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +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",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",39="1K - AC Switch",79="1L - Clutch",91="1Q - Brake/RES1",18="2A - Pressure Input",85="2D - O2S2",9="3S - EGR BOOST IN",38="4C - IN TEMP/PPS2",5="PPS1",3="TPS1" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",16="1K - AC Switch",9="2A - Pressure Input",14="2B - IAT",11="2B - MAF",1="2C - O2S",5="2F - TPS",13="2G - Coolant",6="3B - Battery Sense",10="3F - CRANK",7="3G - CAM",8="3S - EGR BOOST IN",15="4C - IN TEMP/PPS2",4="PPS1",2="TPS1",3="intMAP" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellenNA96" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_mre_f4.ini b/firmware/tunerstudio/generated/fome_mre_f4.ini new file mode 100644 index 0000000000..e18cd35508 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_mre_f4.ini @@ -0,0 +1,7971 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.mre_f4.336667820" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.mre_f4.336667820" ; 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 Tue Feb 21 11:00:52 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 + + 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 + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "microRusEFI main relay control is hard wired on pin #29" + + 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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 = 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF + commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP + commandButton = "microRusEFI Miata 94/95 MAP", cmd_set_engine_type_microRusEFI_Miata_94_MAP + commandButton = "microRusEFI Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP + commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF + commandButton = "microRusEFI GDI VAG B6 test", cmd_set_engine_type_microRusEFI_VW_B6 + commandButton = "microRusEFI BCM", cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL + commandButton = "microRusEFI Subaru EJ18", cmd_set_engine_type_MRE_SUBARU_EJ18 + commandButton = "microRusEFI CAN Extender", cmd_set_engine_type_MRE_SECONDARY_CAN + + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/microrusefi" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_mre_f7.ini b/firmware/tunerstudio/generated/fome_mre_f7.ini new file mode 100644 index 0000000000..716e88c233 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_mre_f7.ini @@ -0,0 +1,7971 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.mre_f7.336667820" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.mre_f7.336667820" ; 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 Tue Feb 21 11:00:51 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +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], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +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",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",2="18 - AN temp 1",36="19 - AN volt 4",37="20 - AN volt 5",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",8="26 - AN volt 2",34="27 - AN volt 1",6="28 - AN volt 10, Aux Reuse",39="30 - AN volt 7",9="31 - AN volt 3",38="32 - AN volt 6, Aux Reuse",18="36 - AN volt 8, Aux Reuse",19="40 - AN volt 9, Aux Reuse" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",5="22 - AN temp 4",3="23 - AN temp 2",4="24 - AN temp 3",7="25 - Hall Cam",40="45 - VR/Hall Crank" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",1="18 - AN temp 1",13="19 - AN volt 4",14="20 - AN volt 5",4="22 - AN temp 4",2="23 - AN temp 2",3="24 - AN temp 3",7="26 - AN volt 2",11="27 - AN volt 1",5="28 - AN volt 10, Aux Reuse",16="30 - AN volt 7",8="31 - AN volt 3",15="32 - AN volt 6, Aux Reuse",9="36 - AN volt 8, Aux Reuse",10="40 - AN volt 9, Aux Reuse",12="Battery Sense" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 + + 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 + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "microRusEFI main relay control is hard wired on pin #29" + + 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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 = 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF + commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP + commandButton = "microRusEFI Miata 94/95 MAP", cmd_set_engine_type_microRusEFI_Miata_94_MAP + commandButton = "microRusEFI Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP + commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF + commandButton = "microRusEFI GDI VAG B6 test", cmd_set_engine_type_microRusEFI_VW_B6 + commandButton = "microRusEFI BCM", cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL + commandButton = "microRusEFI Subaru EJ18", cmd_set_engine_type_MRE_SUBARU_EJ18 + commandButton = "microRusEFI CAN Extender", cmd_set_engine_type_MRE_SECONDARY_CAN + + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/microrusefi" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_prometheus_405.ini b/firmware/tunerstudio/generated/fome_prometheus_405.ini new file mode 100644 index 0000000000..2cf1a52980 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_prometheus_405.ini @@ -0,0 +1,7989 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.prometheus_405.505951" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.prometheus_405.505951" ; 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 Tue Feb 21 11:00:54 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +vbattAdcChannel = bits, U08, 445, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelSensor = bits, U08, 446, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_1AdcChannel = bits, U08, 447, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +afr_hwChannel2 = bits, U08, 497, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins2 = bits, U16, 570, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins3 = bits, U16, 572, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins4 = bits, U16, 574, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins5 = bits, U16, 576, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins6 = bits, U16, 578, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins7 = bits, U16, 580, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins8 = bits, U16, 582, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins9 = bits, U16, 584, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins10 = bits, U16, 586, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins11 = bits, U16, 588, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins12 = bits, U16, 590, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins1 = bits, U16, 592, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins2 = bits, U16, 594, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins3 = bits, U16, 596, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins4 = bits, U16, 598, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins5 = bits, U16, 600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins6 = bits, U16, 602, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins7 = bits, U16, 604, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins8 = bits, U16, 606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins9 = bits, U16, 608, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins10 = bits, U16, 610, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins11 = bits, U16, 612, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins12 = bits, U16, 614, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +clutchDownPin = 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" +alternatorControlPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps1_2AdcChannel = bits, U08, 642, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_2AdcChannel = bits, U08, 643, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +o2heaterPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid2 = bits, U16, 1122, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid3 = bits, U16, 1124, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid4 = bits, U16, 1126, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid5 = bits, U16, 1128, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid6 = bits, U16, 1130, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins2 = bits, U16, 1160, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins3 = bits, U16, 1162, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins4 = bits, U16, 1164, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins5 = bits, U16, 1166, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins6 = bits, U16, 1168, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins7 = bits, U16, 1170, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins8 = bits, U16, 1172, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0: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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins2 = bits, U16, 1634, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins3 = bits, U16, 1636, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins4 = bits, U16, 1638, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs2 = bits, U08, 1681, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs3 = bits, U08, 1682, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs4 = bits, U08, 1683, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs5 = bits, U08, 1684, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs6 = bits, U08, 1685, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs7 = bits, U08, 1686, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs8 = bits, U08, 1687, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +trailingCoilPins1 = bits, U16, 1688, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins2 = bits, U16, 1690, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins3 = bits, U16, 1692, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins4 = bits, U16, 1694, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins5 = bits, U16, 1696, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins6 = bits, U16, 1698, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins7 = bits, U16, 1700, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins8 = bits, U16, 1702, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins9 = bits, U16, 1704, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins10 = bits, U16, 1706, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins11 = bits, U16, 1708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins12 = bits, U16, 1710, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output2 = bits, U16, 3556, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output3 = bits, U16, 3558, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output4 = bits, U16, 3560, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_prometheus_469.ini b/firmware/tunerstudio/generated/fome_prometheus_469.ini new file mode 100644 index 0000000000..fcd779b88e --- /dev/null +++ b/firmware/tunerstudio/generated/fome_prometheus_469.ini @@ -0,0 +1,7989 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.prometheus_469.505951" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.prometheus_469.505951" ; 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 Tue Feb 21 11:00:53 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +vbattAdcChannel = bits, U08, 445, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelSensor = bits, U08, 446, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_1AdcChannel = bits, U08, 447, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +afr_hwChannel2 = bits, U08, 497, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +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], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins2 = bits, U16, 570, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins3 = bits, U16, 572, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins4 = bits, U16, 574, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins5 = bits, U16, 576, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins6 = bits, U16, 578, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins7 = bits, U16, 580, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins8 = bits, U16, 582, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins9 = bits, U16, 584, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins10 = bits, U16, 586, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins11 = bits, U16, 588, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPins12 = bits, U16, 590, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins1 = bits, U16, 592, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins2 = bits, U16, 594, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins3 = bits, U16, 596, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins4 = bits, U16, 598, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins5 = bits, U16, 600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins6 = bits, U16, 602, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins7 = bits, U16, 604, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins8 = bits, U16, 606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins9 = bits, U16, 608, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins10 = bits, U16, 610, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins11 = bits, U16, 612, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +ignitionPins12 = bits, U16, 614, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +clutchDownPin = 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" +alternatorControlPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps1_2AdcChannel = bits, U08, 642, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +tps2_2AdcChannel = bits, U08, 643, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +o2heaterPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonPin = bits, U16, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid2 = bits, U16, 1122, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid3 = bits, U16, 1124, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid4 = bits, U16, 1126, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid5 = bits, U16, 1128, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_solenoid6 = bits, U16, 1130, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins2 = bits, U16, 1160, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins3 = bits, U16, 1162, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins4 = bits, U16, 1164, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins5 = bits, U16, 1166, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins6 = bits, U16, 1168, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins7 = bits, U16, 1170, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +luaOutputPins8 = bits, U16, 1172, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +acSwitch = bits, U16, 1298, [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, 1300, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = 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", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0: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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins2 = bits, U16, 1634, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins3 = bits, U16, 1636, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +vvtPins4 = bits, U16, 1638, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs2 = bits, U08, 1681, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs3 = bits, U08, 1682, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs4 = bits, U08, 1683, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs5 = bits, U08, 1684, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs6 = bits, U08, 1685, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs7 = bits, U08, 1686, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxAnalogInputs8 = bits, U08, 1687, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +trailingCoilPins1 = bits, U16, 1688, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins2 = bits, U16, 1690, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins3 = bits, U16, 1692, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins4 = bits, U16, 1694, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins5 = bits, U16, 1696, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins6 = bits, U16, 1698, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins7 = bits, U16, 1700, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins8 = bits, U16, 1702, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins9 = bits, U16, 1704, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins10 = bits, U16, 1706, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins11 = bits, U16, 1708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +trailingCoilPins12 = bits, U16, 1710, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output2 = bits, U16, 3556, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output3 = bits, U16, 3558, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +stepper_raw_output4 = bits, U16, 3560, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_proteus_f4.ini b/firmware/tunerstudio/generated/fome_proteus_f4.ini new file mode 100644 index 0000000000..c734c88520 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_proteus_f4.ini @@ -0,0 +1,7963 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.proteus_f4.1393422530" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.proteus_f4.1393422530" ; 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 Tue Feb 21 11:00:55 PST 2023 + +pageSize = 26296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 12000 +cltFuelCorrBins = array, F32, 17612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 17676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 17740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 17804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 17868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 17900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 17932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 17964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 17996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 18060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 18124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 19148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 20172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 20236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 20244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 20252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 20764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 20796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 20828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 20888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 21400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 21432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 21464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 21528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 21544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 21560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 21624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 21640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 21656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 22168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 22200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 22232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 22744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 22776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 22808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 22808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 23064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 23096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 23128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 23384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 23416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 23448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 23704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 23720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 23736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 23800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 23816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 23832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 23896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 23912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 23928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 23992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 24008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 24024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 24032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 24040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 24056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 24072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 24088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 24104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 24120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 24136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 24152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 24168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 24184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 24200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 24216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 24232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 24240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 24248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 24264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 24280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 24296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 24312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 24328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 24344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 24360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 24376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 24392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 24408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 24424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 24440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 24456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 24464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 24472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 24480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 24488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 24496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 24504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 24512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 24520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 24528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 24536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 24544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 24552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 24560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 24568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 24576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 24584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 24592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 24600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 24636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 24642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 24648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 24684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 24690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 24696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 24728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 24736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 24744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 24776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 24784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 24792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 24920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 24936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 24952, [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" +ignBlends1_blendBins = array, S16, 24954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 24970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 24980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 25108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 25124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 25140, [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" +ignBlends2_blendBins = array, S16, 25142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 25158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 25168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 25296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 25312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 25328, [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" +ignBlends3_blendBins = array, S16, 25330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 25346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 25356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 25484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 25500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 25516, [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" +ignBlends4_blendBins = array, S16, 25518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 25534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 25544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 25672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 25688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 25704, [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" +veBlends1_blendBins = array, S16, 25706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 25722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 25732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 25860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 25876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 25892, [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" +veBlends2_blendBins = array, S16, 25894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 25910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 25920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 26048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 26064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 26080, [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" +veBlends3_blendBins = array, S16, 26082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 26098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 26108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 26236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 26252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 26268, [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" +veBlends4_blendBins = array, S16, 26270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 26286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 26296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = tle8888, "TLE8888" + + subMenu = std_separator + + + # EXPERIMENTAL FEATURES + subMenu = mc33Dialog, "PT2001 control" + subMenu = hpfpCamDialog, "HPFP Cam Configuration" + subMenu = hpfpPumpDialog, "HPFP Pump Configuration", {hpfpCamLobes != 0} + subMenu = hpfpTargetTable, "HPFP Target Pressure", {hpfpCamLobes != 0} + subMenu = hpfpCompensationTable, "HPFP Pump Compensation", {hpfpCamLobes != 0} + subMenu = std_separator + subMenu = fancyHardwareDialog, "Fancy Hardware" + subMenu = std_separator + + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_nDBANK = "Z\x00\x14\x00\x14" +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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "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 + + 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 + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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 = 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 = "F7 nDBANK fix", cmd_nDBANK + 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 = "Proteus M73 v12", cmd_set_engine_type_Proteus_M73 + commandButton = "Proteus GDI VAG B6 test", cmd_set_engine_type_PROTEUS_VW_B6 + commandButton = "Proteus GM Gen4", cmd_set_engine_type_PROTEUS_GM_LS_4 + commandButton = "Proteus Miata TCU", cmd_set_engine_type_Proteus_Miata_TCU + commandButton = "Proteus Lua Demo", cmd_set_engine_type_PROTEUS_LUA_DEMO + commandButton = "Proteus Miata NB2", cmd_set_engine_type_PROTEUS_MIATA_NB2 + commandButton = "Proteus Honda K", cmd_set_engine_type_PROTEUS_HONDA_K + commandButton = "Proteus Honda OBD2A", cmd_set_engine_type_PROTEUS_HONDA_OBD2A + commandButton = "Proteus Harley", cmd_set_engine_type_PROTEUS_HARLEY + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://github.com/rusefi/rusefi/wiki/Proteus-Manual" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_proteus_f7.ini b/firmware/tunerstudio/generated/fome_proteus_f7.ini new file mode 100644 index 0000000000..4a102d85f0 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_proteus_f7.ini @@ -0,0 +1,7963 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.proteus_f7.1393422530" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.proteus_f7.1393422530" ; 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 Tue Feb 21 11:00:54 PST 2023 + +pageSize = 26296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 12000 +cltFuelCorrBins = array, F32, 17612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 17676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 17740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 17804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 17868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 17900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 17932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 17964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 17996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 18060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 18124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 19148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 20172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 20236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 20244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 20252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 20764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 20796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 20828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 20888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 21400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 21432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 21464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 21528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 21544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 21560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 21624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 21640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 21656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 22168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 22200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 22232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 22744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 22776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 22808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 22808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 23064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 23096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 23128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 23384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 23416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 23448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 23704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 23720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 23736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 23800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 23816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 23832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 23896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 23912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 23928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 23992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 24008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 24024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 24032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 24040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 24056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 24072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 24088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 24104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 24120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 24136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 24152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 24168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 24184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 24200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 24216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 24232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 24240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 24248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 24264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 24280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 24296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 24312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 24328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 24344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 24360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 24376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 24392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 24408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 24424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 24440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 24456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 24464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 24472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 24480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 24488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 24496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 24504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 24512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 24520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 24528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 24536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 24544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 24552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 24560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 24568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 24576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 24584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 24592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 24600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 24636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 24642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 24648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 24684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 24690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 24696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 24728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 24736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 24744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 24776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 24784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 24792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 24920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 24936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 24952, [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" +ignBlends1_blendBins = array, S16, 24954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 24970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 24980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 25108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 25124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 25140, [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" +ignBlends2_blendBins = array, S16, 25142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 25158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 25168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 25296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 25312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 25328, [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" +ignBlends3_blendBins = array, S16, 25330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 25346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 25356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 25484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 25500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 25516, [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" +ignBlends4_blendBins = array, S16, 25518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 25534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 25544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 25672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 25688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 25704, [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" +veBlends1_blendBins = array, S16, 25706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 25722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 25732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 25860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 25876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 25892, [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" +veBlends2_blendBins = array, S16, 25894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 25910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 25920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 26048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 26064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 26080, [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" +veBlends3_blendBins = array, S16, 26082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 26098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 26108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 26236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 26252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 26268, [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" +veBlends4_blendBins = array, S16, 26270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 26286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 26296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = tle8888, "TLE8888" + + subMenu = std_separator + + + # EXPERIMENTAL FEATURES + subMenu = mc33Dialog, "PT2001 control" + subMenu = hpfpCamDialog, "HPFP Cam Configuration" + subMenu = hpfpPumpDialog, "HPFP Pump Configuration", {hpfpCamLobes != 0} + subMenu = hpfpTargetTable, "HPFP Target Pressure", {hpfpCamLobes != 0} + subMenu = hpfpCompensationTable, "HPFP Pump Compensation", {hpfpCamLobes != 0} + subMenu = std_separator + subMenu = fancyHardwareDialog, "Fancy Hardware" + subMenu = std_separator + + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_nDBANK = "Z\x00\x14\x00\x14" +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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "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 + + 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 + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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 = 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 = "F7 nDBANK fix", cmd_nDBANK + 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 = "Proteus M73 v12", cmd_set_engine_type_Proteus_M73 + commandButton = "Proteus GDI VAG B6 test", cmd_set_engine_type_PROTEUS_VW_B6 + commandButton = "Proteus GM Gen4", cmd_set_engine_type_PROTEUS_GM_LS_4 + commandButton = "Proteus Miata TCU", cmd_set_engine_type_Proteus_Miata_TCU + commandButton = "Proteus Lua Demo", cmd_set_engine_type_PROTEUS_LUA_DEMO + commandButton = "Proteus Miata NB2", cmd_set_engine_type_PROTEUS_MIATA_NB2 + commandButton = "Proteus Honda K", cmd_set_engine_type_PROTEUS_HONDA_K + commandButton = "Proteus Honda OBD2A", cmd_set_engine_type_PROTEUS_HONDA_OBD2A + commandButton = "Proteus Harley", cmd_set_engine_type_PROTEUS_HARLEY + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://github.com/rusefi/rusefi/wiki/Proteus-Manual" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_proteus_h7.ini b/firmware/tunerstudio/generated/fome_proteus_h7.ini new file mode 100644 index 0000000000..5c2800a7d1 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_proteus_h7.ini @@ -0,0 +1,7963 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.proteus_h7.1393422530" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.proteus_h7.1393422530" ; 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 Tue Feb 21 11:00:55 PST 2023 + +pageSize = 26296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +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], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +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",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",38="Analog Temp 1",39="Analog Temp 2",18="Analog Temp 3",19="Analog Temp 4",34="Analog Volt 1",7="Analog Volt 10",8="Analog Volt 11",35="Analog Volt 2",36="Analog Volt 3",37="Analog Volt 4",2="Analog Volt 5",3="Analog Volt 6",4="Analog Volt 7",5="Analog Volt 8",6="Analog Volt 9",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",40="Digital 1",77="Digital 2",78="Digital 3",80="Digital 4",79="Digital 5",81="Digital 6",73="VR 1",74="VR 2" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",15="Analog Temp 1",16="Analog Temp 2",9="Analog Temp 3",10="Analog Temp 4",11="Analog Volt 1",6="Analog Volt 10",7="Analog Volt 11",12="Analog Volt 2",13="Analog Volt 3",14="Analog Volt 4",1="Analog Volt 5",2="Analog Volt 6",3="Analog Volt 7",4="Analog Volt 8",5="Analog Volt 9",8="Battery Sense" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 12000 +cltFuelCorrBins = array, F32, 17612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 17676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 17740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 17804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 17868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 17900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 17932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 17964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 17996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 18060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 18124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 19148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 20172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 20236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 20244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 20252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 20764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 20796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 20828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 20888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 21400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 21432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 21464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 21528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 21544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 21560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 21624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 21640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 21656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 22168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 22200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 22232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 22744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 22776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 22808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 22808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 23064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 23096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 23128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 23384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 23416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 23448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 23704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 23720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 23736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 23800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 23816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 23832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 23896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 23912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 23928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 23992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 24008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 24024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 24032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 24040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 24056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 24072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 24088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 24104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 24120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 24136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 24152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 24168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 24184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 24200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 24216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 24232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 24240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 24248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 24264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 24280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 24296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 24312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 24328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 24344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 24360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 24376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 24392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 24408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 24424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 24440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 24456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 24464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 24472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 24480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 24488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 24496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 24504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 24512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 24520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 24528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 24536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 24544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 24552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 24560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 24568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 24576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 24584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 24592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 24600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 24636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 24642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 24648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 24684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 24690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 24696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 24728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 24736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 24744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 24776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 24784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 24792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 24920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 24936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 24952, [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" +ignBlends1_blendBins = array, S16, 24954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 24970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 24980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 25108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 25124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 25140, [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" +ignBlends2_blendBins = array, S16, 25142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 25158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 25168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 25296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 25312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 25328, [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" +ignBlends3_blendBins = array, S16, 25330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 25346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 25356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 25484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 25500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 25516, [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" +ignBlends4_blendBins = array, S16, 25518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 25534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 25544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 25672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 25688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 25704, [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" +veBlends1_blendBins = array, S16, 25706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 25722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 25732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 25860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 25876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 25892, [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" +veBlends2_blendBins = array, S16, 25894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 25910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 25920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 26048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 26064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 26080, [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" +veBlends3_blendBins = array, S16, 26082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 26098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 26108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 26236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 26252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 26268, [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" +veBlends4_blendBins = array, S16, 26270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 26286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 26296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = tle8888, "TLE8888" + + subMenu = std_separator + + + # EXPERIMENTAL FEATURES + subMenu = mc33Dialog, "PT2001 control" + subMenu = hpfpCamDialog, "HPFP Cam Configuration" + subMenu = hpfpPumpDialog, "HPFP Pump Configuration", {hpfpCamLobes != 0} + subMenu = hpfpTargetTable, "HPFP Target Pressure", {hpfpCamLobes != 0} + subMenu = hpfpCompensationTable, "HPFP Pump Compensation", {hpfpCamLobes != 0} + subMenu = std_separator + subMenu = fancyHardwareDialog, "Fancy Hardware" + subMenu = std_separator + + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_nDBANK = "Z\x00\x14\x00\x14" +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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "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 + + 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 + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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 = 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 = "F7 nDBANK fix", cmd_nDBANK + 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 = "Proteus M73 v12", cmd_set_engine_type_Proteus_M73 + commandButton = "Proteus GDI VAG B6 test", cmd_set_engine_type_PROTEUS_VW_B6 + commandButton = "Proteus GM Gen4", cmd_set_engine_type_PROTEUS_GM_LS_4 + commandButton = "Proteus Miata TCU", cmd_set_engine_type_Proteus_Miata_TCU + commandButton = "Proteus Lua Demo", cmd_set_engine_type_PROTEUS_LUA_DEMO + commandButton = "Proteus Miata NB2", cmd_set_engine_type_PROTEUS_MIATA_NB2 + commandButton = "Proteus Honda K", cmd_set_engine_type_PROTEUS_HONDA_K + commandButton = "Proteus Honda OBD2A", cmd_set_engine_type_PROTEUS_HONDA_OBD2A + commandButton = "Proteus Harley", cmd_set_engine_type_PROTEUS_HARLEY + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://github.com/rusefi/rusefi/wiki/Proteus-Manual" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini new file mode 100644 index 0000000000..b07bfde381 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini @@ -0,0 +1,7984 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.subaru_eg33_f7.3048760128" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.subaru_eg33_f7.3048760128" ; 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 = 300; 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 config/boards/subaru_eg33/config/gen_subaru_config.sh integration/rusefi_config.txt Tue Feb 21 11:00:44 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +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",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +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",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +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], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +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",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +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], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +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",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",183="A19 - AC Ctrl Din",182="A20 - Torque Ctrl Din",181="B09 - P pos Din",180="B10 - N pos Din",178="B12 - IGN Din",177="C09 - Air Condition request Din",166="C10 - Starter Din",167="C12 - Memory SW Din",168="C13 - Test SW Din",169="D04 - California ID Din" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",126="A07 - Cam VR+",124="A08 - Crank 1 VR+",75="A08 - Crank 2 VR+",64="B11 - Speed Din" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",7="A02 - VBat",15="A03 - Coolant t Ain",10="A04 - EGR t Ain",16="A06 - Oxyg 1 Ain",9="A06 - Oxyg 2 Ain",12="A18 - AUX0 Ain",1="AUX0_18 - MAP Ain",6="AUX0_19 - IAT Ain",13="B02 - TPS Ain",4="B05 - MAF Ain" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/fome_tdg-pdm8.ini b/firmware/tunerstudio/generated/fome_tdg-pdm8.ini new file mode 100644 index 0000000000..db236010f2 --- /dev/null +++ b/firmware/tunerstudio/generated/fome_tdg-pdm8.ini @@ -0,0 +1,7994 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.tdg-pdm8.3124582893" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.tdg-pdm8.3124582893" ; 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 Tue Feb 21 11:00:57 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = 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" +injectionPins2 = 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" +injectionPins3 = 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" +injectionPins4 = 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" +injectionPins5 = 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" +injectionPins6 = 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" +injectionPins7 = 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" +injectionPins8 = 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" +injectionPins9 = 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" +injectionPins10 = 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" +injectionPins11 = 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" +injectionPins12 = 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" +ignitionPins1 = 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" +ignitionPins2 = 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" +ignitionPins3 = 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" +ignitionPins4 = 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" +ignitionPins5 = 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" +ignitionPins6 = 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" +ignitionPins7 = 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" +ignitionPins8 = 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" +ignitionPins9 = 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" +ignitionPins10 = bits, U16, 610, [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, 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" +ignitionPins12 = bits, U16, 614, [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, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [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, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [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, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [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, 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" +alternatorControlPin = bits, U16, 630, [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, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [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, 642, [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, 643, [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, 644, [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, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [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, 662, [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, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [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, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [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, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = 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" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [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, 710, [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, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +logicAnalyzerPins2 = bits, U16, 722, [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, 724, [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, 726, [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, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [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, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [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, 772, [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, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = 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" +test557pin = 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [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, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [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, 810, [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, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [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, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [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, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = 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" +launchActivatePin = 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" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [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, 1122, [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, 1124, [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, 1126, [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, 1128, [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, 1130, [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, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [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, 1160, [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, 1162, [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, 1164, [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, 1166, [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, 1168, [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, 1170, [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, 1172, [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, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [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, 1298, [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, 1300, [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, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [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, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [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, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [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, 1470, [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, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = 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" +auxSpeedSensorInputPin2 = bits, U16, 1514, [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, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [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, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [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, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0: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, 1634, [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, 1636, [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, 1638, [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, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [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, 1681, [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, 1682, [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, 1683, [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, 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" +auxAnalogInputs6 = 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" +auxAnalogInputs7 = 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" +auxAnalogInputs8 = 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" +trailingCoilPins1 = bits, U16, 1688, [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, 1690, [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, 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" +trailingCoilPins4 = 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" +trailingCoilPins5 = 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" +trailingCoilPins6 = 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" +trailingCoilPins7 = 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" +trailingCoilPins8 = 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" +trailingCoilPins9 = 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" +trailingCoilPins10 = 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" +trailingCoilPins11 = 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" +trailingCoilPins12 = 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" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [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, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [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, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 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" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [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, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [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, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [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, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [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, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [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, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [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, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [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, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [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, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [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, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [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, 3556, [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, 3558, [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, 3560, [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, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [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, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [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, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [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, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [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, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [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, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [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, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = datalogSettings, "Datalogging" + 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" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 + field = "Smoothing factor", slowAdcAlpha + + + +; 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 = verboseIsoTp, verboseIsoTp + 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 + + 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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 } + 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 = "Come To Pit", cmd_call_from_pit + 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 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF + 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", triggerSimulatorFrequency + 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 = "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 + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + 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 diff --git a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini new file mode 100644 index 0000000000..3c33da82a5 --- /dev/null +++ b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini @@ -0,0 +1,7964 @@ +; 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" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2023.02.21.hellen128.2952860776" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2023.02.21.hellen128.2952860776" ; 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 Tue Feb 21 11:00:46 PST 2023 + +pageSize = 22296 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",97="ET_UNUSED97",98="ET_UNUSED98",17="ET_UNUSED_17",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",57="FRANKENSO_MIATA_NA6_VAF",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",12="MRE_MIATA_NA6_VAF",13="MRE_MIATA_NB2_ETB",15="MRE_MIATA_NB2_MAF",11="MRE_MIATA_NB2_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",25="PROTEUS_LUA_DEMO",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",42="PROTEUS_QC_TEST_BOARD",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",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" +isVerboseAuxPid1 = 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" +useTLE8888_cranking_hack = bits, U32, 120, [12:12], "false", "true" +kickStartCranking = bits, U32, 120, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [14:14], "false", "true" +launchControlEnabled = bits, U32, 120, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 120, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 120, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 120, [18:18], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 120, [19:19], "false", "true" +useTLE8888_stepper = bits, U32, 120, [20:20], "false", "true" +enableMapEstimationTableFallback = 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",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +clt_tempC_1 = scalar, 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",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +iat_tempC_1 = scalar, 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",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 356, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, F32, 360, "L", 1, 0, 0, 1000, 2 +cylindersCount = scalar, U32, 364, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 368, [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, 372, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 376, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 377, "%", 1, 0, 0, 10, 0 +criticalLedPin = bits, U16, 378, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 380, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 381, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 382, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 384, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 385, "", 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", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "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",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +idle_derivativeFilterLoss = scalar, F32, 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", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 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 +failedMapFallback = scalar, U08, 472, "kPa", 1, 0, 0, 100, 0 +boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +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], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +camInputs2 = bits, U16, 490, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +camInputs3 = bits, U16, 492, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +camInputs4 = bits, U16, 494, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +afr_v1 = scalar, 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",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tle6240_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], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +baroSensor_lowValue = scalar, F32, 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",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +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, 2, 200, 0 +vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0 +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" +triggerSimulatorFrequency = scalar, S32, 564, "Rpm", 1, 0, 0, 30000, 0 +injectionPins1 = bits, U16, 568, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins2 = bits, U16, 570, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins3 = bits, U16, 572, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins4 = bits, U16, 574, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins5 = bits, U16, 576, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins6 = bits, U16, 578, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins7 = bits, U16, 580, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins8 = bits, U16, 582, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins9 = bits, U16, 584, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins10 = bits, U16, 586, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins11 = bits, U16, 588, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins12 = bits, U16, 590, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins1 = bits, U16, 592, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins2 = bits, U16, 594, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins3 = bits, U16, 596, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins4 = bits, U16, 598, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins5 = bits, U16, 600, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins6 = bits, U16, 602, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins7 = bits, U16, 604, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins8 = bits, U16, 606, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins9 = bits, U16, 608, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins10 = bits, U16, 610, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins11 = bits, U16, 612, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins12 = bits, U16, 614, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinMode = bits, U08, 616, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 617, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 618, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +fuelPumpPinMode = bits, U08, 620, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U16, 622, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +malfunctionIndicatorPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 625, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 626, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +clutchDownPin = bits, U16, 628, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +alternatorControlPin = bits, U16, 630, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +alternatorControlPinMode = bits, U08, 632, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 633, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 634, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 635, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +debugTriggerSync = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 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" +mc33972_csPinMode = bits, U08, 640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 641, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tps1_2AdcChannel = bits, U08, 642, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tps2_2AdcChannel = bits, U08, 643, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +throttlePedalPositionSecondAdcChannel = bits, U08, 644, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +fuelLevelValues = array, U08, 645, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 653, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom" +idle_antiwindupFreq = scalar, F32, 656, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 660, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +triggerInputPins2 = bits, U16, 662, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +mc33_t_min_boost = scalar, U16, 664, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 666, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tachOutputPinMode = bits, U08, 668, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 670, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +sdCardCsPin = bits, U16, 672, [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, 674, [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, 676, [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, 678, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 679, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 680, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 682, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +tcuInputSpeedSensorTeeth = scalar, U08, 684, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 686, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 688, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 692, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 696, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 700, [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, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 704, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 707, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 708, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +o2heaterPin = bits, U16, 710, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +o2heaterPinModeTodO = bits, U08, 712, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 716, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 716, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 716, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 716, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 716, [4:4], "11 bit", "29 bit" +isEngineControlEnabled = bits, U32, 716, [5:5], "false", "true" +isVerboseAlternator = bits, U32, 716, [6:6], "false", "true" +verboseQuad = bits, U32, 716, [7:7], "false", "true" +useStepperIdle = bits, U32, 716, [8:8], "false", "true" +enabledStep1Limiter = bits, U32, 716, [9:9], "false", "true" +unused760b12 = bits, U32, 716, [10:10], "false", "true" +verboseTLE8888 = bits, U32, 716, [11:11], "false", "true" +enableVerboseCanTx = bits, U32, 716, [12:12], "false", "true" +etb1configured = bits, U32, 716, [13:13], "false", "true" +etb2configured = bits, U32, 716, [14:14], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 716, [15:15], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 716, [16:16], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 716, [17:17], "false", "true" +coastingFuelCutEnabled = bits, U32, 716, [18:18], "false", "true" +useIacTableForCoasting = bits, U32, 716, [19:19], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 716, [20:20], "false", "true" +useIdleTimingPidControl = bits, U32, 716, [21:21], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 716, [22:22], "false", "true" +is_enabled_spi_4 = bits, U32, 716, [23:23], "false", "true" +pauseEtbControl = bits, U32, 716, [24:24], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 716, [25:25], "false", "true" +unused764b29 = bits, U32, 716, [26:26], "false", "true" +enableAemXSeries = bits, U32, 716, [27:27], "false", "true" +logicAnalyzerPins1 = bits, U16, 720, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +logicAnalyzerPins2 = bits, U16, 722, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +logicAnalyzerPins3 = bits, U16, 724, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +logicAnalyzerPins4 = bits, U16, 726, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +mainRelayPinMode = bits, U08, 728, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 732, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 736, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 737, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 738, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +acFanPinMode = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 741, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +dwellVoltageCorrVoltBins = array, U08, 742, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 750, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +dwellVoltageCorrValues = array, U08, 751, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 760, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 762, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 764, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 766, [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, 768, [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, 770, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +clutchUpPin = bits, U16, 772, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +injectorNonlinearMode = bits, U08, 774, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 775, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 776, [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, 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" +max31855_cs3 = 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" +max31855_cs4 = 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" +max31855_cs5 = 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" +max31855_cs6 = bits, U16, 786, [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, 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_cs8 = 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" +flexSensorPin = bits, U16, 792, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +test557pin = bits, U16, 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" +stepperDirectionPinMode = bits, U08, 796, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 797, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioSecondary = scalar, U08, 798, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 799, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 800, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = 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" +starterRelayDisablePin = bits, U16, 804, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +starterRelayDisablePinMode = bits, U08, 806, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 808, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +startStopButtonPin = bits, U16, 810, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +mapMinBufferLength = scalar, S32, 812, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerErrorPinMode = bits, U08, 830, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 832, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +acRelayPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 836, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 840, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 844, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 848, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 852, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 856, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 860, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 868, [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, 870, [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, 872, [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, 874, [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, 876, [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, 878, [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, 880, [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, 882, [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, 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" +consoleUartDevice = bits, U08, 886, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 887, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +mafSensorType = bits, S08, 888, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 892, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 892, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 892, [2:2], "false", "true" +multisparkEnable = bits, U32, 892, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 892, [4:4], "false", "true" +enableCanVss = bits, U32, 892, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 892, [6:6], "false", "true" +showHumanReadableWarning = bits, U32, 892, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 892, [8:8], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 892, [9:9], "false", "true" +enableSoftwareKnock = bits, U32, 892, [10:10], "false", "true" +verboseVVTDecoding = bits, U32, 892, [11:11], "false", "true" +invertCamVVTSignal = bits, U32, 892, [12:12], "false", "true" +consumeObdSensors = bits, U32, 892, [13:13], "false", "true" +knockBankCyl1 = bits, U32, 892, [14:14], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 892, [15:15], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 892, [16:16], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 892, [17:17], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 892, [18:18], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 892, [19:19], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 892, [20:20], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 892, [21:21], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 892, [22:22], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 892, [23:23], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 892, [24:24], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 892, [25:25], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 892, [26:26], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 892, [27:27], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 892, [28:28], "false", "true" +verboseCan2 = bits, U32, 892, [29:29], "Do not print", "Print all" +etbIo1_directionPin1 = 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" +etbIo1_directionPin2 = 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" +etbIo1_controlPin = 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" +etbIo1_disablePin = 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" +etbIo2_directionPin1 = bits, U16, 904, [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, 906, [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, 908, [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, 910, [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, 912, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +boostControlPinMode = bits, U08, 914, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 916, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +launchActivatePin = bits, U16, 918, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +boostPid_pFactor = scalar, F32, 920, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 924, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 928, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 932, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 934, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 936, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 938, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 940, [0:0], "Open Loop", "Open + Closed Loop" +boostPwmFrequency = scalar, S32, 944, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 948, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 949, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 952, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 956, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 960, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 964, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 968, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 972, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 976, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 980, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 984, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 985, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 986, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 987, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 988, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 989, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 990, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 991, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 992, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 993, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 994, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 996, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 997, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 998, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1000, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1001, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1002, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1004, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1005, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1006, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1008, [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, 1010, [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, 1012, [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, 1014, [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, 1016, [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, 1018, [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, 1020, [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, 1022, [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, 1024, 32 +engineCode = string, ASCII, 1056, 32 +vehicleName = string, ASCII, 1088, 32 +tcu_solenoid1 = bits, U16, 1120, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid2 = bits, U16, 1122, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid3 = bits, U16, 1124, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid4 = bits, U16, 1126, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid5 = bits, U16, 1128, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid6 = bits, U16, 1130, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +etbFunctions1 = bits, U08, 1132, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1133, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860spiDevice = bits, U08, 1134, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +drv8860_cs = bits, U16, 1136, [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, 1138, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1140, [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, 1142, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1158, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins2 = bits, U16, 1160, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins3 = bits, U16, 1162, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins4 = bits, U16, 1164, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins5 = bits, U16, 1166, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins6 = bits, U16, 1168, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins7 = bits, U16, 1170, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins8 = bits, U16, 1172, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtOffsets1 = scalar, F32, 1176, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1180, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1184, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1192, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1198, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_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" +gpPwmNote1 = string, ASCII, 1224, 16 +gpPwmNote2 = string, ASCII, 1240, 16 +gpPwmNote3 = string, ASCII, 1256, 16 +gpPwmNote4 = string, ASCII, 1272, 16 +tps2SecondaryMin = scalar, U16, 1288, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1290, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1292, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1292, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1292, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1292, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1292, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1292, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1292, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1292, [7:7], "false", "true" +canReadEnabled = bits, U32, 1292, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1292, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1292, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1292, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1292, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1292, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1292, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1292, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1292, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1292, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1292, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1292, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1292, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1292, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1292, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1292, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1292, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1292, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1292, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1292, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1292, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1292, [29:29], "false", "true" +twoStroke = bits, U32, 1292, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1292, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1296, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +acSwitch = bits, U16, 1298, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +vRefAdcChannel = bits, U08, 1300, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +etbNeutralPosition = scalar, U08, 1301, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1302, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1304, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1304, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1304, [2:2], "false", "true" +complexWallModel = bits, U32, 1304, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1304, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1304, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1304, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1304, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1304, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1304, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1304, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1304, [11:11], "false", "true" +twoWireBatchInjection = bits, U32, 1304, [12:12], "false", "true" +neverInstantRpm = bits, U32, 1304, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1304, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1304, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1304, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1304, [17:17], "false", "true" +flexCranking = bits, U32, 1304, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1304, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1304, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1304, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1304, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1304, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1304, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1304, [25:25], "advance", " retard" +invertVvtControlExhaust = bits, U32, 1304, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1304, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1304, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1304, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1304, [30:30], "false", "true" +tempBooleanForVerySpecialLogic = bits, U32, 1304, [31:31], "false", "true" +engineChartSize = scalar, U32, 1308, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1312, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1316, [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, 1318, [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, 1320, [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, 1322, [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, 1324, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1326, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1328, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1332, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1336, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1340, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1344, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1348, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1352, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1356, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1360, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1364, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1368, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1372, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1374, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1376, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1378, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1388, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1392, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1394, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1396, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1398, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1400, [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, 1402, [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, 1404, "", 1, 0, 0, 32000, 0 +turboSpeedSensorInputPin = bits, U16, 1406, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +tps2Min = scalar, S16, 1408, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1410, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1412, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +startStopButtonMode = bits, U08, 1414, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mc33816_flag0 = 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" +tachPulsePerRev = scalar, U08, 1418, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1420, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1424, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1428, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1430, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1432, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1436, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1440, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1444, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1446, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1448, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1450, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1452, "Fraction", 1, 0, 0, 1, 2 +communicationLedPin = bits, U16, 1456, [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" +runningLedPin = bits, U16, 1458, [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" +binarySerialTxPin = bits, U16, 1460, [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, 1462, [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, 1464, [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, 1466, [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, 1468, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +tcuDownshiftButtonPin = bits, U16, 1470, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +throttlePedalUpVoltage = scalar, F32, 1472, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1476, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1480, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1482, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1484, "Volts", 1, 0, 0, 30, 1 +alternatorOffAboveTps = scalar, F32, 1488, "%", 1, 0, 0, 200, 2 +afterCrankingIACtaperDuration = scalar, S16, 1492, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1494, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1496, [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" +warningLedPin = bits, U16, 1498, [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, 1500, [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, 1502, [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, 1504, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1505, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1506, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1507, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1508, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1512, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +auxSpeedSensorInputPin2 = bits, U16, 1514, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +totalGearsCount = scalar, U08, 1516, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1517, [0:1], "End of injection", "Start of injection", "Center of injection" +uartConsoleSerialSpeed = scalar, U32, 1520, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1524, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1528, "coeff", 1, 0, 0, 200, 2 +slowAdcAlpha = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 3 +debugMode = bits, U08, 1536, [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" +auxSerialSpeed = scalar, U32, 1540, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1552, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1553, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1554, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1555, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1556, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1557, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1558, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1559, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1560, [0:0], "false", "true" +canOpenBLT = bits, U32, 1560, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1560, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1560, [3:3], "volumetric flow", "mass flow" +unused1127 = bits, U32, 1560, [4:4], "false", "true" +unused1128 = bits, U32, 1560, [5:5], "false", "true" +unused1129 = bits, U32, 1560, [6:6], "false", "true" +unused1130 = bits, U32, 1560, [7:7], "false", "true" +benchTestOffTime = scalar, U08, 1564, "ms", 5.0, 0, 0, 2000, 1 +benchTestCount = scalar, U08, 1565, "count", 1, 0, 0, 250, 1 +benchTestOnTime = scalar, U08, 1566, "ms", 5.0, 0, 0, 2000, 1 +launchActivatePinMode = bits, U08, 1567, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1568, [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, 1570, [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, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1573, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1576, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1632, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtPins2 = bits, U16, 1634, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtPins3 = bits, U16, 1636, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtPins4 = bits, U16, 1638, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +sdCardCsPinMode = bits, U08, 1640, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1644, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4 +vvtOutputFrequency1 = scalar, U16, 1664, "Hz", 1, 0, 0, 3000, 0 +vvtOutputFrequency2 = scalar, U16, 1666, "Hz", 1, 0, 0, 3000, 0 +fan1ExtraIdle = scalar, U08, 1668, "%", 1, 0, 0, 100, 0 +alternatorPwmFrequency = scalar, S32, 1672, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1676, [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" +vvtMode2 = bits, U08, 1677, [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" +fan2ExtraIdle = scalar, U08, 1678, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1679, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1680, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs2 = bits, U08, 1681, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs3 = bits, U08, 1682, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs4 = bits, U08, 1683, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs5 = bits, U08, 1684, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs6 = bits, U08, 1685, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs7 = bits, U08, 1686, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs8 = bits, U08, 1687, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +trailingCoilPins1 = bits, U16, 1688, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins2 = bits, U16, 1690, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins3 = bits, U16, 1692, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins4 = bits, U16, 1694, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins5 = bits, U16, 1696, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins6 = bits, U16, 1698, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins7 = bits, U16, 1700, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins8 = bits, U16, 1702, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins9 = bits, U16, 1704, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins10 = bits, U16, 1706, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins11 = bits, U16, 1708, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins12 = bits, U16, 1710, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tle8888mode = bits, U08, 1712, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1713, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1714, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1715, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1716, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1720, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1724, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1728, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 1740, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1756, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxTempSensor2_tempC_1 = scalar, F32, 1760, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 1772, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1788, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +knockSamplingDuration = scalar, S16, 1792, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1794, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1796, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1808, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1810, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1812, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1814, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1816, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1817, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1818, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1819, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +timing_offset_cylinder1 = scalar, F32, 1820, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1868, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 1872, [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, 1873, [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, 1874, [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, 1875, [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, 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" +spi2MisoMode = 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" +spi3SckMode = 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" +spi3MosiMode = 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" +spi3MisoMode = 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" +stepperEnablePinMode = bits, U08, 1881, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1882, [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, 1884, [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, 1886, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +brakePedalPinMode = bits, U08, 1888, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1892, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1904, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1906, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1908, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1910, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1912, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1924, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1926, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1928, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1930, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1932, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1964, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1972, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +oilPressure_v1 = scalar, F32, 1976, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1980, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1984, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1988, "kPa", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 1992, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +fan2Pin = bits, U16, 1994, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +fan2OnTemperature = scalar, U08, 1996, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1997, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1998, [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, 2000, [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, 2002, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_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" +auxFrequencyFilter = scalar, F32, 2008, "", 1, 0, 0, 100, 0 +vvtControlMinRpm = scalar, S16, 2012, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2014, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +launchFuelAdderPercent = scalar, S08, 2016, "", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2017, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2018, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2020, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2024, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2026, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2028, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2030, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2032, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2034, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2036, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +highPressureFuel_v1 = scalar, F32, 2040, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2044, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2048, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2052, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2056, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +lowPressureFuel_v1 = scalar, F32, 2060, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2064, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2068, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2072, "kPa", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2076, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2080, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2088, 16 +scriptCurveName2 = string, ASCII, 2104, 16 +scriptCurveName3 = string, ASCII, 2120, 16 +scriptCurveName4 = string, ASCII, 2136, 16 +scriptCurveName5 = string, ASCII, 2152, 16 +scriptCurveName6 = string, ASCII, 2168, 16 +scriptTableName1 = string, ASCII, 2184, 16 +scriptTableName2 = string, ASCII, 2200, 16 +scriptTableName3 = string, ASCII, 2216, 16 +scriptTableName4 = string, ASCII, 2232, 16 +scriptSettingName1 = string, ASCII, 2248, 16 +scriptSettingName2 = string, ASCII, 2264, 16 +scriptSettingName3 = string, ASCII, 2280, 16 +scriptSettingName4 = string, ASCII, 2296, 16 +scriptSettingName5 = string, ASCII, 2312, 16 +scriptSettingName6 = string, ASCII, 2328, 16 +scriptSettingName7 = string, ASCII, 2344, 16 +scriptSettingName8 = string, ASCII, 2360, 16 +tChargeAirCoefMin = scalar, F32, 2376, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2380, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2384, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2388, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2396, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +etb_iTermMin = scalar, S16, 2398, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2400, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2404, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2408, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2416, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2418, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2420, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2422, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2424, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2426, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2428, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2432, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +mc33816spiDevice = bits, U08, 2433, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +idlerpmpid_iTermMin = scalar, S16, 2434, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2436, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4" +stoichRatioPrimary = scalar, U08, 2437, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2438, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2440, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2444, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2445, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2446, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2447, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2448, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2449, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2450, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2451, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2452, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2453, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2454, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2455, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2456, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2464, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2465, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2466, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2467, "RPM", 50.0, 0, 0, 12000, 0 +idleRpmPid2_pFactor = scalar, F32, 2468, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 2472, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 2480, "", 1, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 2482, "ms", 1, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 2484, "", 1, 0, -30000, 30000, 0 +idleRpmPid2_maxValue = scalar, S16, 2486, "", 1, 0, -30000, 30000, 0 +canVssNbcType = bits, U08, 2488, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U16, 2492, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm1_dutyIfError = scalar, U08, 2494, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2496, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2498, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2499, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2500, [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" +gppwm1_rpmAxis = bits, U08, 2501, [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" +gppwm1_loadBins = array, S16, 2502, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2518, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2534, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2600, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm2_dutyIfError = scalar, U08, 2602, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2604, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2606, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2607, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2608, [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" +gppwm2_rpmAxis = bits, U08, 2609, [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" +gppwm2_loadBins = array, S16, 2610, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2626, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2642, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2708, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm3_dutyIfError = scalar, U08, 2710, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2712, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2714, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2715, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2716, [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" +gppwm3_rpmAxis = bits, U08, 2717, [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" +gppwm3_loadBins = array, S16, 2718, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2734, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2750, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2816, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm4_dutyIfError = scalar, U08, 2818, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2820, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2822, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2823, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2824, [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" +gppwm4_rpmAxis = bits, U08, 2825, [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" +gppwm4_loadBins = array, S16, 2826, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2842, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2858, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2924, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2926, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2928, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2930, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2932, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2934, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2936, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 2942, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 2943, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acSwitchMode = bits, U08, 2944, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcu_solenoid_mode1 = bits, U08, 2945, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2946, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2947, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2948, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2949, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 2951, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 2968, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 2972, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3112, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3113, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3114, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3116, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3118, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3122, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3123, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3124, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 3125, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 3126, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3128, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3130, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3131, "", 1, 0, 0, 100, 0 +hpfpPidP = scalar, U16, 3132, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3134, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3136, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3138, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3154, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3170, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3178, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3194, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3394, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3414, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3424, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3524, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3544, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3554, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +stepper_raw_output2 = bits, U16, 3556, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +stepper_raw_output3 = bits, U16, 3558, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +stepper_raw_output4 = bits, U16, 3560, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gearRatio1 = scalar, U16, 3562, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 3564, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 3566, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 3568, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 3578, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3580, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3588, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3604, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3612, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3628, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3664, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3676, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3688, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 3689, [0:1], "None", "Simple Transmission", "GM 4L6X" +auxLinear1_hwChannel = bits, U08, 3692, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxLinear1_v1 = scalar, F32, 3696, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3700, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3712, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxLinear2_v1 = scalar, F32, 3716, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3720, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 3732, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_tcc_onoff_solenoid_mode = bits, U08, 3734, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 3736, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_tcc_pwm_solenoid_mode = bits, U08, 3738, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 3740, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 3742, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_pc_solenoid_pin_mode = bits, U08, 3744, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 3746, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 3748, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_32_solenoid_pin_mode = bits, U08, 3750, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 3752, "Hz", 1, 0, 0, 3000, 0 +etbMinimumPosition = scalar, F32, 3756, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 3760, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 3762, 17 +highSpeedOffsets = array, U16, 3780, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 3844, "", 1, 0, 0, 100, 0 +luaDigitalInputPins1 = bits, U16, 3848, [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, 3850, [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, 3852, [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, 3854, [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, 3856, [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, 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" +luaDigitalInputPins7 = 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" +luaDigitalInputPins8 = 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" +tpsTspCorrValuesBins = array, U08, 3864, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 3868, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 3870, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 3872, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 3874, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 3875, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 3876, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 3877, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 3878, "", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 3879, "deg", 1, 0, 0, 250, 0 +unusedA11lignmentFill_at_33 = scalar, U08, 3880, "", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 3881, [0:1], "None", "GM type 1", "Ford type 1" +ALSIdleAdd = scalar, S32, 3884, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3888, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3892, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3896, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3897, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3898, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3899, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3900, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3901, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3902, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3903, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3904, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3906, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3907, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +mainUnusedEnd = array, U08, 3908, [96], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4004, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4036, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4068, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4132, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4140, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4148, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4164, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4180, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4196, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4212, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4244, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4276, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 4340, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 4404, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 4468, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 4532, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 4564, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 4596, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 4628, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 4660, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 4692, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 4724, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 4756, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 4788, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 4804, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 4820, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 4884, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 4916, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4948, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4956, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4964, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4980, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 4996, 120 +afterstartCoolantBins = array, F32, 5116, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5148, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5180, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5212, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5244, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 5308, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 5316, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 5380, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 5388, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 5452, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 5460, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 5468, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 5500, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 5532, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 5540, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 5572, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 5576, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 5580, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 5612, 8000 +cltFuelCorrBins = array, F32, 13612, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 13676, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 13740, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 13804, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 13868, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 13900, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 13932, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 13964, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 13996, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14060, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14124, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 15148, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 16172, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 16236, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 16244, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 16252, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 16764, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 16796, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 16828, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 16888, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 17400, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 17432, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 17464, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 17528, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 17544, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 17560, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 17624, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 17640, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 17656, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 18168, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 18200, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 18232, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 18744, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 18776, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 18808, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 18808, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 19064, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 19096, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 19128, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 19384, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 19416, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 19448, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 19704, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 19720, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 19736, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 19800, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 19816, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 19832, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 19896, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 19912, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 19928, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 19992, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 20008, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 20024, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 20032, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 20040, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 20056, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 20072, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 20088, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 20104, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 20120, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 20136, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 20152, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 20168, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 20184, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 20200, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 20216, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 20232, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 20240, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 20248, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 20264, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 20280, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 20296, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 20312, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 20328, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 20344, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 20360, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 20376, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 20392, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 20408, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 20424, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 20440, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 20456, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 20464, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 20472, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 20480, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 20560, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 20568, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 20576, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 20584, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 20592, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 20600, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 20636, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 20642, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 20648, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 20684, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 20690, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 20696, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 20728, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 20736, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 20744, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 20776, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 20784, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 20792, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 20920, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 20936, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 20952, [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" +ignBlends1_blendBins = array, S16, 20954, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 20970, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 20980, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 21108, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 21124, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 21140, [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" +ignBlends2_blendBins = array, S16, 21142, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 21158, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 21168, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 21296, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 21312, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 21328, [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" +ignBlends3_blendBins = array, S16, 21330, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 21346, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 21356, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 21484, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 21500, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 21516, [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" +ignBlends4_blendBins = array, S16, 21518, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 21534, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 21544, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 21672, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 21688, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 21704, [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" +veBlends1_blendBins = array, S16, 21706, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 21722, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 21732, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 21860, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 21876, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 21892, [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" +veBlends2_blendBins = array, S16, 21894, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 21910, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 21920, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 22048, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 22064, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 22080, [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" +veBlends3_blendBins = array, S16, 22082, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 22098, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 22108, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 22236, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 22252, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 22268, [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" +veBlends4_blendBins = array, S16, 22270, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 22286, [8], "%", 0.5, 0, 0, 100, 1 +; total TS size = 22296 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + 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." + 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" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + 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" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + displacement = "Engine volume/capacity, in litres\nsee also cylindersCount" + 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"." + 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" + 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" + 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." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + failedMapFallback = "Single value to be used in event of a failed MAP sensor \nThis value is only used for speed density fueling calculations." + 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 = "Throttle pedal position first channel" + 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." + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + 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" + 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" + 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?\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" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + 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 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + 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" + 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?" + 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." + 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" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel" + 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." + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + 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." + 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" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + benchTestCount = "How many test bench pulses do you want" + benchTestOnTime = "Length of each of the test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output\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" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + 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 , 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 = 1356 + +; 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] +unused3123 = bits, U32, 0, [12:12] +isTpsError = bits, U32, 0, [13:13] +isCltError = bits, U32, 0, [14:14] +isMapError = bits, U32, 0, [15:15] +isIatError = bits, U32, 0, [16:16] +unused131313 = bits, U32, 0, [17:17] +isTriggerError = bits, U32, 0, [18:18] +hasCriticalError = bits, U32, 0, [19:19] +isWarnNow = bits, U32, 0, [20:20] +isPedalError = bits, U32, 0, [21:21] +launchTriggered = bits, U32, 0, [22:22] +isTps2Error = bits, U32, 0, [23:23] +isIdleClosedLoop = bits, U32, 0, [24:24] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, U16, 6, "RPM/s", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +knockRetard = scalar, U08, 36, "deg", 0.1, 0 +idleCurrentPosition = scalar, U08, 37, "%", 0.5, 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 +chargeAirMass = scalar, U16, 44, "g", 0.001, 0 +crankingFuelMs = scalar, U16, 46, "ms", 0.01, 0 +baseFuel = scalar, U16, 48, "mg", 0.01, 0 +fuelRunning = scalar, U16, 50, "mg", 0.01, 0 +actualLastInjection = scalar, U16, 52, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 54, "%", 0.5, 0 +veValue = scalar, U08, 55, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 56, "deg", 1, 0 +tCharge = scalar, S16, 58, "deg C", 0.01, 0 +injectorLagMs = scalar, U16, 60, "ms", 0.0033333333333333335, 0 +engineMakeCodeNameCrc16 = scalar, U16, 62, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 64, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 66, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 68, "", 1, 0 +deltaTpsValue = scalar, S16, 70, "ratio", 0.01, 0 +canReadCounter = scalar, U16, 72, "", 1, 0 +tpsAccelFuel = scalar, S16, 74, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 76, "deg", 0.02, 0 +unusedDwellWasHere = scalar, U16, 78, "", 1, 0 +coilDutyCycle = scalar, U16, 80, "%", 0.01, 0 +idleAirValvePosition = scalar, U16, 82, "%", 0.01, 0 +etbTarget = scalar, S16, 84, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 86, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 88, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 90, "grams", 1, 0 +fuelFlowRate = scalar, U16, 92, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 94, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 96, "crc16", 1, 0 +knockLevel = scalar, F32, 100, "Volts", 1, 0 +seconds = scalar, U32, 104, "sec", 1, 0 +engineMode = scalar, U32, 108, "em", 1, 0 +firmwareVersion = scalar, U32, 112, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 116, "V", 0.001, 0 +accelerationX = scalar, S16, 118, "G", 0.01, 0 +accelerationY = scalar, S16, 120, "G", 0.01, 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 +detectedGear = scalar, U08, 134, "", 1, 0 +maxTriggerReentrant = scalar, U08, 135, "", 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 +tcuDesiredGear = scalar, S08, 250, "gear", 1, 0 +flexPercent = scalar, U08, 251, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 252, "%", 0.01, 0 +rawLowFuelPressure = scalar, S16, 254, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 256, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 258, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 260, "bar", 0.1, 0 +AFRValue = scalar, U16, 262, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 264, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 266, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 268, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 270, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 272, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 274, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 276, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 278, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 280, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 282, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 284, "V", 0.001, 0 +knockCount = scalar, U16, 286, "", 1, 0 +accelerationZ = scalar, S16, 288, "G", 0.01, 0 +accelerationRoll = scalar, S16, 290, "G", 0.01, 0 +accelerationYaw = scalar, S16, 292, "G", 0.01, 0 +vvtTargets1 = scalar, S08, 294, "deg", 1, 0 +vvtTargets2 = scalar, S08, 295, "deg", 1, 0 +vvtTargets3 = scalar, S08, 296, "deg", 1, 0 +vvtTargets4 = scalar, S08, 297, "deg", 1, 0 +turboSpeed = scalar, U16, 298, "hz", 1, 0 +tps1Split = scalar, S16, 300, "%", 0.01, 0 +tps2Split = scalar, S16, 302, "%", 0.01, 0 +tps12Split = scalar, S16, 304, "%", 0.01, 0 +accPedalSplit = scalar, S16, 306, "%", 0.01, 0 +sparkCutReason = scalar, S08, 308, "code", 1, 0 +fuelCutReason = scalar, S08, 309, "code", 1, 0 +mafEstimate = scalar, U16, 310, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 312, "rpm", 1, 0 +systemEventReuse = scalar, U16, 314, "counter", 1, 0 +rawMap = scalar, U16, 316, "V", 0.001, 0 +rawAfr = scalar, U16, 318, "V", 0.001, 0 +tpsAccelFrom = scalar, U08, 320, "%", 1, 0 +tpsAccelTo = scalar, U08, 321, "%", 1, 0 +calibrationValue2 = scalar, F32, 324, "", 1, 0 +isMainRelayOn = bits, U32, 328, [0:0] +isUsbConnected = bits, U32, 328, [1:1] +luaInvocationCounter = scalar, U32, 332, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 336, "nt", 1, 0 +testBenchIter = scalar, U08, 340, "count", 1, 0 +tcu_currentRange = scalar, U08, 341, "", 1, 0 +tcRatio = scalar, U16, 342, "value", 0.01, 0 +lastShiftTime = scalar, F32, 344, "", 1, 0 +vssEdgeCounter = scalar, U32, 348, "", 1, 0 +issEdgeCounter = scalar, U32, 352, "", 1, 0 +auxLinear1 = scalar, S16, 356, "", 0.01, 0 +auxLinear2 = scalar, S16, 358, "", 0.01, 0 +dfcoActive = bits, U32, 360, [0:0] +tpsAccelActive = bits, U32, 360, [1:1] +fallbackMap = scalar, U16, 364, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 366, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 368, "us", 1, 0 +canWriteOk = scalar, U16, 370, "", 1, 0 +canWriteNotOk = scalar, U16, 372, "", 1, 0 +triggerPrimaryFall = scalar, U32, 376, "", 1, 0 +triggerPrimaryRise = scalar, U32, 380, "", 1, 0 +triggerSecondaryFall = scalar, U32, 384, "", 1, 0 +triggerSecondaryRise = scalar, U32, 388, "", 1, 0 +triggerVvtFall = scalar, U32, 392, "", 1, 0 +triggerVvtRise = scalar, U32, 396, "", 1, 0 +starterState = scalar, U08, 400, "", 1, 0 +starterRelayDisable = scalar, U08, 401, "", 1, 0 +multiSparkCounter = scalar, U08, 402, "", 1, 0 +extiOverflowCount = scalar, U08, 403, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 404, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 412, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 414, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 416, "", 1, 0 +idleStatus_pTerm = scalar, F32, 420, "", 1, 0 +idleStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +idleStatus_output = scalar, S16, 428, "", 0.01, 0 +idleStatus_error = scalar, S16, 430, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 432, "", 1, 0 +etbStatus_pTerm = scalar, F32, 436, "", 1, 0 +etbStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +etbStatus_output = scalar, S16, 444, "", 0.01, 0 +etbStatus_error = scalar, S16, 446, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 448, "", 1, 0 +boostStatus_pTerm = scalar, F32, 452, "", 1, 0 +boostStatus_iTerm = scalar, S16, 456, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 458, "", 0.01, 0 +boostStatus_output = scalar, S16, 460, "", 0.01, 0 +boostStatus_error = scalar, S16, 462, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 464, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 468, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 472, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 474, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 476, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 478, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 512, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 516, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 520, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 522, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 524, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 526, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 528, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 532, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 536, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 538, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 540, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 542, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 544, "", 1, 0 +auxSpeed1 = scalar, U16, 548, "s", 1, 0 +auxSpeed2 = scalar, U16, 550, "s", 1, 0 +ISSValue = scalar, U16, 552, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 554, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 556, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 558, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 560, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 562, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 564, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 566, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 568, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 570, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 571, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 572, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 573, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 574, "", 1, 0 +gppwmXAxis2 = scalar, S16, 576, "", 1, 0 +gppwmXAxis3 = scalar, S16, 578, "", 1, 0 +gppwmXAxis4 = scalar, S16, 580, "", 1, 0 +gppwmYAxis1 = scalar, S16, 582, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 584, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 586, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 588, "", 0.1, 0 +rawBattery = scalar, S16, 590, "V", 0.001, 0 +ignBlendBias1 = scalar, U08, 592, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 593, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 594, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 595, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 596, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 598, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 600, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 602, "deg", 0.01, 0 +veBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 606, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 607, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 608, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 610, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 612, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 614, "%", 0.01, 0 +coilState1 = bits, U32, 616, [0:0] +coilState2 = bits, U32, 616, [1:1] +coilState3 = bits, U32, 616, [2:2] +coilState4 = bits, U32, 616, [3:3] +coilState5 = bits, U32, 616, [4:4] +coilState6 = bits, U32, 616, [5:5] +coilState7 = bits, U32, 616, [6:6] +coilState8 = bits, U32, 616, [7:7] +coilState9 = bits, U32, 616, [8:8] +coilState10 = bits, U32, 616, [9:9] +coilState11 = bits, U32, 616, [10:10] +coilState12 = bits, U32, 616, [11:11] +injectorState1 = bits, U32, 616, [12:12] +injectorState2 = bits, U32, 616, [13:13] +injectorState3 = bits, U32, 616, [14:14] +injectorState4 = bits, U32, 616, [15:15] +injectorState5 = bits, U32, 616, [16:16] +injectorState6 = bits, U32, 616, [17:17] +injectorState7 = bits, U32, 616, [18:18] +injectorState8 = bits, U32, 616, [19:19] +injectorState9 = bits, U32, 616, [20:20] +injectorState10 = bits, U32, 616, [21:21] +injectorState11 = bits, U32, 616, [22:22] +injectorState12 = bits, U32, 616, [23:23] +outputRequestPeriod = scalar, U32, 620, "", 1, 0 +mapFast = scalar, F32, 624, "", 1, 0 +luaGauges1 = scalar, F32, 628, "value", 1, 0 +luaGauges2 = scalar, F32, 632, "value", 1, 0 +rawMaf2 = scalar, U16, 636, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 638, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 640, "", 1,0 +unusedAtTheEnd1 = scalar, U08, 642, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 643, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 644, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 645, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 646, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 647, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 648, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 649, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 650, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 651, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 652, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 653, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 654, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 655, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 656, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 657, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 658, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 659, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 660, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 661, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 662, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 663, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 664, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 665, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 666, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 667, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 668, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 669, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 670, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 671, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 672, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 673, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 674, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 675, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 676, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 677, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 678, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 679, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 680, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 681, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 682, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd118 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd119 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd120 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd121 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd122 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd123 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd124 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd125 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd126 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd127 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd128 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd129 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd130 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd131 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd132 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd133 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd134 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd135 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd136 = scalar, U08, 777, "", 1, 0 +; total TS size = 780 +totalFuelCorrection = scalar, F32, 780, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 784, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 788, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 792, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 796, "secs", 1,0 +running_baseFuel = scalar, F32, 800, "", 1, 0 +running_fuel = scalar, F32, 804, "", 1, 0 +afrTableYAxis = scalar, U16, 808, "%", 0.01,0 +targetLambda = scalar, U16, 810, "", 1.0E-4,0 +targetAFR = scalar, U16, 812, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 814, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 816, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 820, "", 1, 0 +sdIsTChargeAirModel = bits, U32, 824, [0:0] +; total TS size = 828 +baseDwell = scalar, F32, 828, "ms", 1,0 +sparkDwell = scalar, F32, 832, "ms", 1,0 +dwellAngle = scalar, F32, 836, "deg", 1,0 +cltTimingCorrection = scalar, S16, 840, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 842, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 844, "deg", 0.01,0 +dwellVoltageCorrection = scalar, F32, 848, "", 1, 0 +luaTimingAdd = scalar, F32, 852, "deg", 1, 0 +luaTimingMult = scalar, F32, 856, "deg", 1, 0 +; total TS size = 860 +m_knockRetard = scalar, F32, 860, "", 1, 0 +m_knockThreshold = scalar, F32, 864, "", 1, 0 +m_knockCount = scalar, U32, 868, "", 1, 0 +m_maximumRetard = scalar, F32, 872, "", 1, 0 +; total TS size = 876 +m_requested_pump = scalar, F32, 876, "", 1, 0 +fuel_requested_percent = scalar, F32, 880, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 884, "", 1, 0 +noValve = bits, U32, 888, [0:0] +angleAboveMin = bits, U32, 888, [1:1] +isHpfpInactive = bits, U32, 888, [2:2] +nextLobe = scalar, F32, 892, "", 1, 0 +di_nextStart = scalar, F32, 896, "v", 1, 0 +; total TS size = 900 +m_deadtime = scalar, F32, 900, "", 1, 0 +pressureDelta = scalar, F32, 904, "kPa", 1, 0 +pressureRatio = scalar, F32, 908, "", 1, 0 +; total TS size = 912 +retardThresholdRpm = scalar, S32, 912, "", 1, 0 +combinedConditions = bits, U32, 916, [0:0] +launchActivatePinState = bits, U32, 916, [1:1] +isLaunchCondition = bits, U32, 916, [2:2] +isSwitchActivated = bits, U32, 916, [3:3] +isClutchActivated = bits, U32, 916, [4:4] +isValidInputPin = bits, U32, 916, [5:5] +activateSwitchCondition = bits, U32, 916, [6:6] +rpmCondition = bits, U32, 916, [7:7] +speedCondition = bits, U32, 916, [8:8] +tpsCondition = bits, U32, 916, [9:9] +; total TS size = 920 +isAntilagCondition = bits, U32, 920, [0:0] +ALSMinRPMCondition = bits, U32, 920, [1:1] +ALSMaxRPMCondition = bits, U32, 920, [2:2] +ALSMinCLTCondition = bits, U32, 920, [3:3] +ALSMaxCLTCondition = bits, U32, 920, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 920, [5:5] +isALSSwitchActivated = bits, U32, 920, [6:6] +ALSActivatePinState = bits, U32, 920, [7:7] +ALSSwitchCondition = bits, U32, 920, [8:8] +ALSTimerCondition = bits, U32, 920, [9:9] +fuelALSCorrection = scalar, F32, 924, "", 1, 0 +timingALSCorrection = scalar, S16, 928, "deg", 0.01, 0 +; total TS size = 932 +isTpsInvalid = bits, U32, 932, [0:0] +m_shouldResetPid = bits, U32, 932, [1:1] +isBelowClosedLoopThreshold = bits, U32, 932, [2:2] +isNotClosedLoop = bits, U32, 932, [3:3] +isZeroRpm = bits, U32, 932, [4:4] +hasInitBoost = bits, U32, 932, [5:5] +rpmTooLow = bits, U32, 932, [6:6] +tpsTooLow = bits, U32, 932, [7:7] +mapTooLow = bits, U32, 932, [8:8] +luaTargetAdd = scalar, S16, 936, "v", 0.5,0 +boostOutput = scalar, S16, 938, "percent", 0.01,0 +luaTargetMult = scalar, F32, 940, "v", 1,0 +openLoopPart = scalar, F32, 944, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 948, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 952, "%", 0.5,0 +boostControlTarget = scalar, S16, 954, "kPa", 0.03333333333333333,0 +; total TS size = 956 +acButtonState = bits, U32, 956, [0:0] +m_acEnabled = bits, U32, 956, [1:1] +engineTooSlow = bits, U32, 956, [2:2] +engineTooFast = bits, U32, 956, [3:3] +noClt = bits, U32, 956, [4:4] +engineTooHot = bits, U32, 956, [5:5] +tpsTooHigh = bits, U32, 956, [6:6] +isDisabledByLua = bits, U32, 956, [7:7] +acCompressorState = bits, U32, 956, [8:8] +latest_usage_ac_control = scalar, S32, 960, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 964, "", 1, 0 +; total TS size = 968 +cranking = bits, U32, 968, [0:0] +notRunning = bits, U32, 968, [1:1] +disabledWhileEngineStopped = bits, U32, 968, [2:2] +brokenClt = bits, U32, 968, [3:3] +enabledForAc = bits, U32, 968, [4:4] +hot = bits, U32, 968, [5:5] +cold = bits, U32, 968, [6:6] +; total TS size = 972 +isPrime = bits, U32, 972, [0:0] +engineTurnedRecently = bits, U32, 972, [1:1] +isFuelPumpOn = bits, U32, 972, [2:2] +ignitionOn = bits, U32, 972, [3:3] +; total TS size = 976 +isBenchTest = bits, U32, 976, [0:0] +hasIgnitionVoltage = bits, U32, 976, [1:1] +mainRelayState = bits, U32, 976, [2:2] +delayedShutoffRequested = bits, U32, 976, [3:3] +; total TS size = 980 +lua_fuelAdd = scalar, F32, 980, "", 1, 0 +lua_fuelMult = scalar, F32, 984, "", 1, 0 +lua_clutchUpState = bits, U32, 988, [0:0] +lua_brakePedalState = bits, U32, 988, [1:1] +lua_acRequestState = bits, U32, 988, [2:2] +lua_luaDisableEtb = bits, U32, 988, [3:3] +lua_luaIgnCut = bits, U32, 988, [4:4] +sd_tCharge = scalar, F32, 992, "", 1, 0 +sd_tChargeK = scalar, F32, 996, "", 1, 0 +sd_airFlow = scalar, F32, 1000, "", 1, 0 +engineCycleDurationMs = scalar, F32, 1004, "", 1, 0 +minRpmKcurrentTPS = scalar, F32, 1008, "", 1, 0 +currentTpsAdc = scalar, U32, 1012, "", 1, 0 +tpsVoltageMCU = scalar, F32, 1016, "", 1, 0 +tpsVoltageBoard = scalar, F32, 1020, "", 1, 0 +currentBaroCorrectedVE = scalar, F32, 1024, "", 1, 0 +injectorFlowCorrection = scalar, F32, 1028, "", 1, 0 +baroCorrection = scalar, F32, 1032, "", 1, 0 +crankingFuel_baseFuel = scalar, F32, 1036, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1044, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1048, "", 1, 0 +crankingFuel_fuel = scalar, F32, 1052, "", 1, 0 +hellenBoardId = scalar, S16, 1056, "id", 1, 0 +clutchUpState = bits, U32, 1060, [0:0] +clutchDownState = bits, U32, 1060, [1:1] +brakePedalState = bits, U32, 1060, [2:2] +startStopState = bits, U32, 1060, [3:3] +startStopStateToggleCounter = scalar, U32, 1064, "", 1, 0 +egtValue1 = scalar, F32, 1068, "", 1, 0 +egtValue2 = scalar, F32, 1072, "", 1, 0 +desiredRpmLimit = scalar, S16, 1076, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1080, "", 1, 0 +sparkCounter = scalar, U32, 1084, "", 1, 0 +fuelingLoad = scalar, F32, 1088, "", 1, 0 +ignitionLoad = scalar, F32, 1092, "", 1, 0 +veTableYAxis = scalar, U16, 1096, "%", 0.01, 0 +; total TS size = 1100 +tpsFrom = scalar, F32, 1100 +tpsTo = scalar, F32, 1104 +deltaTps = scalar, F32, 1108 +extraFuel = scalar, F32, 1112, "", 1, 0 +valueFromTable = scalar, F32, 1116, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1120, [0:0] +isBelowDecelThreshold = bits, U32, 1120, [1:1] +isTimeToResetAccumulator = bits, U32, 1120, [2:2] +isFractionalEnrichment = bits, U32, 1120, [3:3] +belowEpsilon = bits, U32, 1120, [4:4] +tooShort = bits, U32, 1120, [5:5] +fractionalInjFuel = scalar, F32, 1124, "", 1, 0 +accumulatedValue = scalar, F32, 1128, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1132, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1136, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1140, "", 1, 0 +cycleCnt = scalar, S32, 1144, "", 1, 0 +; total TS size = 1148 +hwEventCounters1 = scalar, U32, 1148, "", 1, 0 +hwEventCounters2 = scalar, U32, 1152, "", 1, 0 +hwEventCounters3 = scalar, U32, 1156, "", 1, 0 +hwEventCounters4 = scalar, U32, 1160, "", 1, 0 +hwEventCounters5 = scalar, U32, 1164, "", 1, 0 +hwEventCounters6 = scalar, U32, 1168, "", 1, 0 +vvtCamCounter = scalar, U32, 1172, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1180, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1184, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1185, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1188, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1192, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1196, "", 1, 0 +; total TS size = 1200 +crankSynchronizationCounter = scalar, U32, 1200, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1204, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1208, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1212, "", 1, 0 +triggerStateIndex = scalar, U08, 1216, "", 1, 0 +vvtCounter = scalar, U08, 1217, "", 1, 0 +camResyncCounter = scalar, U08, 1218, "", 1, 0 +vvtStateIndex = scalar, U08, 1219, "", 1, 0 +; total TS size = 1220 +m_hasSynchronizedPhase = bits, U32, 1220, [0:0] +; total TS size = 1224 +wallFuelCorrection = scalar, F32, 1224, "", 1, 0 +wallFuel = scalar, F32, 1228, "", 1, 0 +; total TS size = 1232 +idleState = bits, S32, 1232, [0:2], "not important" +currentIdlePosition = scalar, F32, 1236 +baseIdlePosition = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +useClosedLoop = bits, U32, 1252, [10:10] +badTps = bits, U32, 1252, [11:11] +looksLikeRunning = bits, U32, 1252, [12:12] +looksLikeCoasting = bits, U32, 1252, [13:13] +looksLikeCrankToIdle = bits, U32, 1252, [14:14] +isVerboseIAC = bits, U32, 1252, [15:15] +isIdleCoasting = bits, U32, 1252, [16:16] +targetRpmByClt = scalar, S32, 1256, "", 1, 0 +targetRpmAcBump = scalar, S32, 1260, "", 1, 0 +iacByRpmTaper = scalar, F32, 1264 +luaAdd = scalar, F32, 1268 +; total TS size = 1272 +idlePosition = scalar, F32, 1272, "per", 1,0 +trim = scalar, F32, 1276, "", 1, 0 +luaAdjustment = scalar, F32, 1280, "per", 1,0 +m_wastegatePosition = scalar, F32, 1284, "per", 1,0 +etbFeedForward = scalar, F32, 1288 +etbIntegralError = scalar, F32, 1292, "", 1, 0 +etbCurrentTarget = scalar, F32, 1296, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1300, "%", 1, 0 +etbRevLimitActive = bits, U32, 1304, [0:0] +jamDetected = bits, U32, 1304, [1:1] +etbDutyRateOfChange = scalar, F32, 1308, "per", 1,0 +etbDutyAverage = scalar, F32, 1312, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1316, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1318, "count", 1,0 +etbErrorCode = scalar, S08, 1320, "", 1, 0 +jamTimer = scalar, U16, 1322, "sec", 0.01, 0 +; total TS size = 1324 +faultCode = scalar, U08, 1324, "", 1, 0 +heaterDuty = scalar, U08, 1325, "%", 1, 0 +pumpDuty = scalar, U08, 1326, "%", 1, 0 +tempC = scalar, U16, 1328, "C", 1, 0 +nernstVoltage = scalar, U16, 1330, "V", 0.001, 0 +esr = scalar, U16, 1332, "", 1, 0 +; total TS size = 1336 +dcOutput0 = scalar, F32, 1336, "per", 1,0 +isEnabled0_int = scalar, U08, 1340, "per", 1,0 +isEnabled0 = bits, U32, 1344, [0:0] +; total TS size = 1348 +value0 = scalar, U16, 1348, "value", 1,0 +value1 = scalar, U16, 1350, "value", 1,0 +errorRate = scalar, F32, 1352, "ratio", 1,0 +; total TS size = 1356 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} + ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} + ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} + ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} + + veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} + veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} + veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} + veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} + + 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 + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + +; 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 = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = 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 = 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 Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = 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, ignBlends1_blendVal + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlends2_blendVal + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlends3_blendVal + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlends4_blendVal + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlends1_blendVal + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlends2_blendVal + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlends3_blendVal + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlends4_blendVal + yBins = veBlends4_blendValues + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + ; 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 = 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 = 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, fuelRunning + zBins = hpfpCompensation + + +[GaugeConfigurations] + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"totalFuelCorrection", "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,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"dwell: coil charge time", "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,"cltTimingCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"timingIatCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"timingPidCorrection", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"luaTimingAdd", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"luaTimingMult", "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,20.0, -0.0,20.0, -0.0,20.0, 2,2 +etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +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 + 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,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + 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 count", "", 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 + +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", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + 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 + ignadvGauge = ignitionAdvance, "Ignition timing", "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, "dwell: 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 = 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 = crankingFuelMs, "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 injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "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, "Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "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 = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { tpsAccelActive }, "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 + +; 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_internal", 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, "isFan2On", int, "%d" +entry = toothLogReady, "toothLogReady", int, "%d" +entry = isTpsError, "isTpsError", int, "%d" +entry = isCltError, "isCltError", int, "%d" +entry = isMapError, "isMapError", int, "%d" +entry = isIatError, "isIatError", int, "%d" +entry = isTriggerError, "isTriggerError", int, "%d" +entry = hasCriticalError, "hasCriticalError", int, "%d" +entry = isWarnNow, "isWarnNow", int, "%d" +entry = isPedalError, "isPedalError", int, "%d" +entry = launchTriggered, "launchTriggered", int, "%d" +entry = isTps2Error, "isTps2Error", int, "%d" +entry = isIdleClosedLoop, "isIdleClosedLoop", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "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 = idleCurrentPosition, "idleCurrentPosition", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", int, "%d" +entry = tCharge, "tCharge", float, "%.3f" +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 = deltaTpsValue, "fuel: TPS change", float, "%.3f" +entry = canReadCounter, "canReadCounter", int, "%d" +entry = tpsAccelFuel, "fuel: TPS acceleration add fuel ms", float, "%.3f" +entry = ignitionAdvance, "timing", float, "%.3f" +entry = coilDutyCycle, "dwell: coil duty cycle", float, "%.3f" +entry = idleAirValvePosition, "Idle Air Valve", 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 = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationX, "Acceleration: X", float, "%.3f" +entry = accelerationY, "Acceleration: Y", float, "%.3f" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleTargetPosition, "idleTargetPosition", int, "%d" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", 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 1", int, "%d" +entry = knock2, "knock 2", int, "%d" +entry = knock3, "knock 3", int, "%d" +entry = knock4, "knock 4", int, "%d" +entry = knock5, "knock 5", int, "%d" +entry = knock6, "knock 6", int, "%d" +entry = knock7, "knock 7", int, "%d" +entry = knock8, "knock 8", int, "%d" +entry = knock9, "knock 9", int, "%d" +entry = knock10, "knock 10", int, "%d" +entry = knock11, "knock 11", int, "%d" +entry = knock12, "knock 12", int, "%d" +entry = tcuDesiredGear, "Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = 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, "fuelPidCorrection 1", float, "%.3f" +entry = fuelPidCorrection2, "fuelPidCorrection 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = knockCount, "knock: count", int, "%d" +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 = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Spark Cut Code", int, "%d" +entry = fuelCutReason, "Fuel Cut Code", int, "%d" +entry = mafEstimate, "MAF estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = systemEventReuse, "systemEventReuse", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = tpsAccelFrom, "tpsAccelFrom", int, "%d" +entry = tpsAccelTo, "tpsAccelTo", int, "%d" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = luaInvocationCounter, "luaInvocationCounter", int, "%d" +entry = luaLastCycleDuration, "luaLastCycleDuration", int, "%d" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = tcu_currentRange, "Current Range", int, "%d" +entry = tcRatio, "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 = tpsAccelActive, "tpsAccelActive", int, "%d" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "canWriteOk", int, "%d" +entry = canWriteNotOk, "canWriteNotOk", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "multiSparkCounter", 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, "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 = 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 = 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 = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "luaGauges 1", float, "%.3f" +entry = luaGauges2, "luaGauges 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = totalFuelCorrection, "totalFuelCorrection", float, "%.3f" +entry = running_postCrankingFuelCorrection, "running_postCrankingFuelCorrection", 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, "running_baseFuel", float, "%.3f" +entry = running_fuel, "Fuel: actual", 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, "SD cylinder mass", float, "%.3f" +entry = sdIsTChargeAirModel, "sdIsTChargeAirModel", int, "%d" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "dwell: coil charge time", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "cltTimingCorrection", float, "%.3f" +entry = timingIatCorrection, "timingIatCorrection", float, "%.3f" +entry = timingPidCorrection, "timingPidCorrection", float, "%.3f" +entry = dwellVoltageCorrection, "dwellVoltageCorrection", float, "%.3f" +entry = luaTimingAdd, "luaTimingAdd", float, "%.3f" +entry = luaTimingMult, "luaTimingMult", float, "%.3f" +entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" +entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" +entry = m_knockCount, "m_knockCount", int, "%d" +entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "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 = 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_fuelAdd", float, "%.3f" +entry = lua_fuelMult, "lua_fuelMult", 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, "speed density", float, "%.3f" +entry = sd_tChargeK, "sd_tChargeK", float, "%.3f" +entry = sd_airFlow, "sd_airFlow", float, "%.3f" +entry = engineCycleDurationMs, "engineCycleDurationMs", float, "%.3f" +entry = minRpmKcurrentTPS, "minRpmKcurrentTPS", float, "%.3f" +entry = currentTpsAdc, "currentTpsAdc", int, "%d" +entry = tpsVoltageMCU, "tpsVoltageMCU", float, "%.3f" +entry = tpsVoltageBoard, "tpsVoltageBoard", float, "%.3f" +entry = currentBaroCorrectedVE, "currentBaroCorrectedVE", float, "%.3f" +entry = injectorFlowCorrection, "injectorFlowCorrection", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure mult", float, "%.3f" +entry = crankingFuel_baseFuel, "Fuel: base duration", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Cranking: CLT coefficient", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "crankingFuel_tpsCoefficient", float, "%.3f" +entry = crankingFuel_durationCoefficient, "crankingFuel_durationCoefficient", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Actual injection", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "clutch: up", int, "%d" +entry = clutchDownState, "clutch: down", int, "%d" +entry = brakePedalState, "brake: down", 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, "fuelInjectionCounter", int, "%d" +entry = sparkCounter, "sparkCounter", int, "%d" +entry = fuelingLoad, "fuel: load", float, "%.3f" +entry = ignitionLoad, "ign: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "tpsFrom", float, "%.3f" +entry = tpsTo, "tpsTo", float, "%.3f" +entry = deltaTps, "deltaTps", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "isAboveAccelThreshold", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = 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, "faultCode", int, "%d" +entry = heaterDuty, "heaterDuty", int, "%d" +entry = pumpDuty, "pumpDuty", int, "%d" +entry = tempC, "tempC", int, "%d" +entry = nernstVoltage, "nernstVoltage", float, "%.3f" +entry = esr, "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 = 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", 0, { enableMapEstimationTableFallback } + 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 = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# 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 = 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 = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + 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 = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + subMenu = std_separator + + subMenu = std_separator + + subMenu = std_separator + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + + + +[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_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_call_from_pit = "Z\x00\x20\x34\x56" +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 + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x1e\x00\x0b" +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" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x1e\x00\x0c" + +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" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x1e\x00\x0f" + +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" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x1e\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_PROTEUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" + + +; 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 = {sdIsTChargeAirModel}, "sdIsTChargeAirModel No", "sdIsTChargeAirModel 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 + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = sd_airFlow + graphLine = engineCycleDurationMs + graphLine = minRpmKcurrentTPS + graphLine = currentTpsAdc + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = tpsVoltageMCU + graphLine = tpsVoltageBoard + graphLine = currentBaroCorrectedVE + graphLine = injectorFlowCorrection + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = baroCorrection + graphLine = crankingFuel_baseFuel + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = egtValue1 + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = sparkCounter + 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 = vvtCurrentPosition + graphLine = triggerSyncGapRatio + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = triggerStateIndex + graphLine = vvtCounter + graphLine = camResyncCounter + 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 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 + + 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 = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://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 an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "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} + + 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 = 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 = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + + 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 = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + 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 = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + 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 + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "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 + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = 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 = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + 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 + + 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 = "Detailed status in console", isVerboseAuxPid1, {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 outpur 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", gearRatio6, { totalGearsCount >= 7 } + field = "8th gear", gearRatio6, { 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 = "Smoothing factor", slowAdcAlpha + + + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + 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 + + 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 = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "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 = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + panel = fallbacks + + 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 + +;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 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = 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 = "Come To Pit", cmd_call_from_pit + 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 = "Hellen 128 Merc 4 cyl", cmd_set_engine_type_hellen_128_merc_4 + commandButton = "Hellen 128 Merc 6 cyl", cmd_set_engine_type_hellen_128_merc_6 + commandButton = "Hellen 128 Merc v8", cmd_set_engine_type_hellen_128_merc_8 + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot, "Experimental/Broken" + 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 = "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 = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "https://rusefi.com/s/hellen128merc" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/java_console/io/src/main/java/com/rusefi/enums/SensorType.java b/java_console/io/src/main/java/com/rusefi/enums/SensorType.java index b8ecf0005c..a8c6ad1ffc 100644 --- a/java_console/io/src/main/java/com/rusefi/enums/SensorType.java +++ b/java_console/io/src/main/java/com/rusefi/enums/SensorType.java @@ -16,10 +16,8 @@ public enum SensorType { FuelPressureHigh, FuelPressureInjector, Tps1, - AnalogTps1, Tps1Primary, Tps1Secondary, - SentTps1, Tps2, Tps2Primary, Tps2Secondary, @@ -32,7 +30,6 @@ public enum SensorType { Lambda1, Lambda2, WastegatePosition, - IdlePosition, FuelEthanolPercent, BatteryVoltage, BarometricPressure, diff --git a/java_console/io/src/main/java/com/rusefi/enums/debug_mode_e.java b/java_console/io/src/main/java/com/rusefi/enums/debug_mode_e.java index ca29accaee..f7d2cf4f30 100644 --- a/java_console/io/src/main/java/com/rusefi/enums/debug_mode_e.java +++ b/java_console/io/src/main/java/com/rusefi/enums/debug_mode_e.java @@ -30,7 +30,7 @@ public enum debug_mode_e { DBG_INSTANT_RPM, UNUSED23, DBG_24, - DBG_CJ125, + DBG_25, DBG_26, DBG_MAP, DBG_METRICS, diff --git a/java_console/io/src/main/java/com/rusefi/enums/ts_command_e.java b/java_console/io/src/main/java/com/rusefi/enums/ts_command_e.java index fd7f5341bf..67344be261 100644 --- a/java_console/io/src/main/java/com/rusefi/enums/ts_command_e.java +++ b/java_console/io/src/main/java/com/rusefi/enums/ts_command_e.java @@ -29,7 +29,7 @@ public enum ts_command_e { TS_WIDEBAND, TS_BENCH_CATEGORY, TS_UNUSED_23, - TS_UNUSED_CJ125_CALIB, + TS_UNUSED_24, TS_SOLENOID_CATEGORY, TS_UNUSED_26, TS_UNUSED_27, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java index 559156f33c..84a9107cf5 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/ac_control.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/ac_control.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class AcControl { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class AcControl { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class AcControl { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class AcControl { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java b/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java index 78958ff4a6..eedba7ba7c 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/antilag_system_state.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/antilag_system_state.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class AntilagSystem { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class AntilagSystem { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class AntilagSystem { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class AntilagSystem { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java index b153a65069..c4f519a5ee 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class BoostControl { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class BoostControl { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class BoostControl { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class BoostControl { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java b/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java index b4e250433a..324d56792e 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/dc_motors.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/dc_motors.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class DcMotors { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class DcMotors { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class DcMotors { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class DcMotors { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java b/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java index 129fafe1eb..3f394fbdc6 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/electronic_throttle.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/electronic_throttle.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class ElectronicThrottle { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class ElectronicThrottle { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class ElectronicThrottle { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class ElectronicThrottle { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java b/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java index c408c8e05c..20fab67747 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/engine_state.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/engine_state.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class EngineState { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class EngineState { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class EngineState { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class EngineState { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java index cf8a16d5bb..2d11ace95a 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Feb 20 21:09:11 PST 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Feb 21 11:00:58 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -181,11 +181,10 @@ public class Fields { public static final int cranking_parameters_s_size = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int cyl_trim_s_size = 16; - public static final int dc_function_e_DC_IdleValve = 3; public static final int dc_function_e_DC_None = 0; public static final int dc_function_e_DC_Throttle1 = 1; public static final int dc_function_e_DC_Throttle2 = 2; - public static final int dc_function_e_DC_Wastegate = 4; + public static final int dc_function_e_DC_Wastegate = 3; public static final int dc_io_size = 8; public static final int DC_PER_STEPPER = 2; public static final int debug_mode_e_DBG_0 = 0; @@ -195,6 +194,7 @@ public class Fields { public static final int debug_mode_e_DBG_2 = 2; public static final int debug_mode_e_DBG_20 = 20; public static final int debug_mode_e_DBG_24 = 24; + public static final int debug_mode_e_DBG_25 = 25; public static final int debug_mode_e_DBG_26 = 26; public static final int debug_mode_e_DBG_29 = 29; public static final int debug_mode_e_DBG_34 = 34; @@ -210,7 +210,6 @@ public class Fields { public static final int debug_mode_e_DBG_ANALOG_INPUTS = 21; public static final int debug_mode_e_DBG_ANALOG_INPUTS2 = 32; public static final int debug_mode_e_DBG_BENCH_TEST = 19; - public static final int debug_mode_e_DBG_CJ125 = 25; public static final int debug_mode_e_DBG_COMPOSITE_LOG = 40; public static final int debug_mode_e_DBG_DWELL_METRIC = 33; public static final int debug_mode_e_DBG_DYNO_VIEW = 44; @@ -237,20 +236,15 @@ public class Fields { public static final int debug_mode_e_DBG_UNUSED41 = 41; public static final int debug_mode_e_DBG_UNUSED_42 = 42; public static final int debug_mode_e_UNUSED23 = 23; - public static final int DIGIPOT_COUNT = 4; - public static final int display_mode_e_DM_HD44780 = 1; - public static final int display_mode_e_DM_HD44780_OVER_PCF8574 = 2; - public static final int display_mode_e_DM_NONE = 0; public static final int DWELL_CURVE_SIZE = 8; public static final int ego_sensor_e_ES_14Point7_Free = 2; public static final int ego_sensor_e_ES_AEM = 6; public static final int ego_sensor_e_ES_BPSX_D1 = 0; public static final int ego_sensor_e_ES_Custom = 5; public static final int ego_sensor_e_ES_Innovate_MTX_L = 1; - public static final int ego_sensor_e_ES_NarrowBand = 3; public static final int ego_sensor_e_ES_PLX = 4; public static final int EGT_CHANNEL_COUNT = 8; - public static final int engine_configuration_s_size = 4076; + public static final int engine_configuration_s_size = 4004; public static final int engine_load_mode_e_LM_ALPHA_N = 2; public static final int engine_load_mode_e_LM_LUA = 3; public static final int engine_load_mode_e_LM_MOCK = 100; @@ -377,7 +371,7 @@ public class Fields { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -901,7 +895,6 @@ public class Fields { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int operation_mode_e_FOUR_STROKE_CAM_SENSOR = 2; public static final int operation_mode_e_FOUR_STROKE_CRANK_SENSOR = 1; public static final int operation_mode_e_FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR = 4; @@ -925,7 +918,7 @@ public class Fields { public static final int PACK_MULT_TEMPERATURE = 100; public static final int PACK_MULT_VOLTAGE = 1000; public static final int PEDAL_TO_TPS_SIZE = 8; - public static final int persistent_config_s_size = 22432; + public static final int persistent_config_s_size = 22296; public static final int pid_s_size = 20; public static final int PidAutoTune_AutoTunerState_AUTOTUNER_OFF = 0; public static final int PidAutoTune_AutoTunerState_CONVERGED = 16; @@ -956,7 +949,6 @@ public class Fields { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; @@ -1000,6 +992,7 @@ public class Fields { public static final int SentEtbType_FORD_TYPE_1 = 2; public static final int SentEtbType_GM_TYPE_1 = 1; public static final int SentEtbType_NONE = 0; + public static final int SIGNATURE_HASH = 1490840425; public static final int specs_s_size = 12; public static final int spi_device_e_SPI_DEVICE_1 = 1; public static final int spi_device_e_SPI_DEVICE_2 = 2; @@ -1038,7 +1031,7 @@ public class Fields { public static final int TOOTH_PACKET_SIZE = 2; public static final String TOP_DEAD_CENTER_MESSAGE = "r"; public static final int TORQUE_CURVE_SIZE = 6; - public static final int TOTAL_CONFIG_SIZE = 22432; + public static final int TOTAL_CONFIG_SIZE = 22296; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int TPS_TPS_ACCEL_CLT_CORR_TABLE = 4; public static final int TPS_TPS_ACCEL_TABLE = 8; @@ -1167,11 +1160,11 @@ public class Fields { public static final int ts_command_e_TS_SET_ENGINE_TYPE = 30; public static final int ts_command_e_TS_SOLENOID_CATEGORY = 25; public static final int ts_command_e_TS_UNUSED_23 = 23; + public static final int ts_command_e_TS_UNUSED_24 = 24; public static final int ts_command_e_TS_UNUSED_26 = 26; public static final int ts_command_e_TS_UNUSED_27 = 27; public static final int ts_command_e_TS_UNUSED_28 = 28; public static final int ts_command_e_TS_UNUSED_29 = 29; - public static final int ts_command_e_TS_UNUSED_CJ125_CALIB = 24; public static final int ts_command_e_TS_WIDEBAND = 21; public static final int ts_command_e_TS_WRITE_FLASH = 10; public static final int ts_command_e_TS_X14 = 20; @@ -1209,7 +1202,7 @@ public class Fields { public static final int TS_RESPONSE_UNDERRUN = 0x80; public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI (FOME) master.2023.02.21.f407-discovery.4145602307"; + public static final String TS_SIGNATURE = "rusEFI (FOME) master.2023.02.21.f407-discovery.1490840425"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final char TS_TEST_COMMAND = 't'; public static final int TS_TOTAL_OUTPUT_SIZE = 1356; @@ -1292,28 +1285,23 @@ public class Fields { public static final Field DISABLEFAN1WHENSTOPPED = Field.create("DISABLEFAN1WHENSTOPPED", 120, FieldType.BIT, 6).setBaseOffset(0); public static final Field DISABLEFAN2WHENSTOPPED = Field.create("DISABLEFAN2WHENSTOPPED", 120, FieldType.BIT, 7).setBaseOffset(0); public static final Field ENABLETRAILINGSPARKS = Field.create("ENABLETRAILINGSPARKS", 120, FieldType.BIT, 8).setBaseOffset(0); - public static final Field ISCJ125VERBOSE = Field.create("ISCJ125VERBOSE", 120, FieldType.BIT, 9).setBaseOffset(0); - public static final Field CJ125ISUADIVIDED = Field.create("CJ125ISUADIVIDED", 120, FieldType.BIT, 10).setBaseOffset(0); - public static final Field CJ125ISLSU49 = Field.create("CJ125ISLSU49", 120, FieldType.BIT, 11).setBaseOffset(0); - public static final Field ETB_USE_TWO_WIRES = Field.create("ETB_USE_TWO_WIRES", 120, FieldType.BIT, 12).setBaseOffset(0); - public static final Field ISDOUBLESOLENOIDIDLE = Field.create("ISDOUBLESOLENOIDIDLE", 120, FieldType.BIT, 13).setBaseOffset(0); - public static final Field USEEEPROM = Field.create("USEEEPROM", 120, FieldType.BIT, 14).setBaseOffset(0); - public static final Field CJ125ISURDIVIDED = Field.create("CJ125ISURDIVIDED", 120, FieldType.BIT, 15).setBaseOffset(0); - public static final Field USECICPIDFORIDLE = Field.create("USECICPIDFORIDLE", 120, FieldType.BIT, 16).setBaseOffset(0); - public static final Field USETLE8888_CRANKING_HACK = Field.create("USETLE8888_CRANKING_HACK", 120, FieldType.BIT, 17).setBaseOffset(0); - public static final Field KICKSTARTCRANKING = Field.create("KICKSTARTCRANKING", 120, FieldType.BIT, 18).setBaseOffset(0); - public static final Field USESEPARATEIDLETABLESFORCRANKINGTAPER = Field.create("USESEPARATEIDLETABLESFORCRANKINGTAPER", 120, FieldType.BIT, 19).setBaseOffset(0); - public static final Field LAUNCHCONTROLENABLED = Field.create("LAUNCHCONTROLENABLED", 120, FieldType.BIT, 20).setBaseOffset(0); - public static final Field DONOTFILTERTRIGGEREDGENOISE = Field.create("DONOTFILTERTRIGGEREDGENOISE", 120, FieldType.BIT, 21).setBaseOffset(0); - public static final Field ANTILAGENABLED = Field.create("ANTILAGENABLED", 120, FieldType.BIT, 22).setBaseOffset(0); - public static final Field USERUNNINGMATHFORCRANKING = Field.create("USERUNNINGMATHFORCRANKING", 120, FieldType.BIT, 23).setBaseOffset(0); - public static final Field DISPLAYLOGICLEVELSINENGINESNIFFER = Field.create("DISPLAYLOGICLEVELSINENGINESNIFFER", 120, FieldType.BIT, 24).setBaseOffset(0); - public static final Field USETLE8888_STEPPER = Field.create("USETLE8888_STEPPER", 120, FieldType.BIT, 25).setBaseOffset(0); - public static final Field ENABLEMAPESTIMATIONTABLEFALLBACK = Field.create("ENABLEMAPESTIMATIONTABLEFALLBACK", 120, FieldType.BIT, 26).setBaseOffset(0); - public static final Field USESCRIPTTABLEFORCANSNIFFINGFILTERING = Field.create("USESCRIPTTABLEFORCANSNIFFINGFILTERING", 120, FieldType.BIT, 27).setBaseOffset(0); - public static final Field VERBOSECAN = Field.create("VERBOSECAN", 120, FieldType.BIT, 28).setBaseOffset(0); - public static final Field ARTIFICIALTESTMISFIRE = Field.create("ARTIFICIALTESTMISFIRE", 120, FieldType.BIT, 29).setBaseOffset(0); - public static final Field USEFORDREDUNDANTPPS = Field.create("USEFORDREDUNDANTPPS", 120, FieldType.BIT, 30).setBaseOffset(0); + public static final Field ETB_USE_TWO_WIRES = Field.create("ETB_USE_TWO_WIRES", 120, FieldType.BIT, 9).setBaseOffset(0); + public static final Field ISDOUBLESOLENOIDIDLE = Field.create("ISDOUBLESOLENOIDIDLE", 120, FieldType.BIT, 10).setBaseOffset(0); + public static final Field USEEEPROM = Field.create("USEEEPROM", 120, FieldType.BIT, 11).setBaseOffset(0); + public static final Field USETLE8888_CRANKING_HACK = Field.create("USETLE8888_CRANKING_HACK", 120, FieldType.BIT, 12).setBaseOffset(0); + public static final Field KICKSTARTCRANKING = Field.create("KICKSTARTCRANKING", 120, FieldType.BIT, 13).setBaseOffset(0); + public static final Field USESEPARATEIDLETABLESFORCRANKINGTAPER = Field.create("USESEPARATEIDLETABLESFORCRANKINGTAPER", 120, FieldType.BIT, 14).setBaseOffset(0); + public static final Field LAUNCHCONTROLENABLED = Field.create("LAUNCHCONTROLENABLED", 120, FieldType.BIT, 15).setBaseOffset(0); + public static final Field DONOTFILTERTRIGGEREDGENOISE = Field.create("DONOTFILTERTRIGGEREDGENOISE", 120, FieldType.BIT, 16).setBaseOffset(0); + public static final Field ANTILAGENABLED = Field.create("ANTILAGENABLED", 120, FieldType.BIT, 17).setBaseOffset(0); + public static final Field USERUNNINGMATHFORCRANKING = Field.create("USERUNNINGMATHFORCRANKING", 120, FieldType.BIT, 18).setBaseOffset(0); + public static final Field DISPLAYLOGICLEVELSINENGINESNIFFER = Field.create("DISPLAYLOGICLEVELSINENGINESNIFFER", 120, FieldType.BIT, 19).setBaseOffset(0); + public static final Field USETLE8888_STEPPER = Field.create("USETLE8888_STEPPER", 120, FieldType.BIT, 20).setBaseOffset(0); + public static final Field ENABLEMAPESTIMATIONTABLEFALLBACK = Field.create("ENABLEMAPESTIMATIONTABLEFALLBACK", 120, FieldType.BIT, 21).setBaseOffset(0); + public static final Field USESCRIPTTABLEFORCANSNIFFINGFILTERING = Field.create("USESCRIPTTABLEFORCANSNIFFINGFILTERING", 120, FieldType.BIT, 22).setBaseOffset(0); + public static final Field VERBOSECAN = Field.create("VERBOSECAN", 120, FieldType.BIT, 23).setBaseOffset(0); + public static final Field ARTIFICIALTESTMISFIRE = Field.create("ARTIFICIALTESTMISFIRE", 120, FieldType.BIT, 24).setBaseOffset(0); + public static final Field USEFORDREDUNDANTPPS = Field.create("USEFORDREDUNDANTPPS", 120, FieldType.BIT, 25).setBaseOffset(0); public static final Field TPSMIN = Field.create("TPSMIN", 124, FieldType.INT16).setScale(1.0).setBaseOffset(0); public static final Field TPSMAX = Field.create("TPSMAX", 126, FieldType.INT16).setScale(1.0).setBaseOffset(0); public static final Field TPSERRORDETECTIONTOOLOW = Field.create("TPSERRORDETECTIONTOOLOW", 128, FieldType.INT16).setScale(1.0).setBaseOffset(0); @@ -1353,1390 +1341,1340 @@ public class Fields { public static final Field IAT_ADCCHANNEL = Field.create("IAT_ADCCHANNEL", 348, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); public static final Field IAT_ALIGNMENTFILL_AT_29 = Field.create("IAT_ALIGNMENTFILL_AT_29", 349, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field LAUNCHTIMINGRETARD = Field.create("LAUNCHTIMINGRETARD", 352, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field HIP9011PRESCALERANDSDO = Field.create("HIP9011PRESCALERANDSDO", 356, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field KNOCKBANDCUSTOM = Field.create("KNOCKBANDCUSTOM", 360, FieldType.FLOAT).setBaseOffset(0); - public static final Field DISPLACEMENT = Field.create("DISPLACEMENT", 364, FieldType.FLOAT).setBaseOffset(0); - public static final Field CYLINDERSCOUNT = Field.create("CYLINDERSCOUNT", 368, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field FIRINGORDER = Field.create("FIRINGORDER", 372, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_9 = Field.create("ALIGNMENTFILL_AT_9", 373, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBORE = Field.create("CYLINDERBORE", 376, FieldType.FLOAT).setBaseOffset(0); + public static final Field KNOCKBANDCUSTOM = Field.create("KNOCKBANDCUSTOM", 356, FieldType.FLOAT).setBaseOffset(0); + public static final Field DISPLACEMENT = Field.create("DISPLACEMENT", 360, FieldType.FLOAT).setBaseOffset(0); + public static final Field CYLINDERSCOUNT = Field.create("CYLINDERSCOUNT", 364, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field FIRINGORDER = Field.create("FIRINGORDER", 368, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_9 = Field.create("ALIGNMENTFILL_AT_9", 369, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBORE = Field.create("CYLINDERBORE", 372, FieldType.FLOAT).setBaseOffset(0); public static final String[] engine_load_mode_e = {"Speed Density", "MAF Air Charge", "Alpha-N", "Lua"}; - public static final Field FUELALGORITHM = Field.create("FUELALGORITHM", 380, FieldType.INT8, engine_load_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALSMAXTPS = Field.create("ALSMAXTPS", 381, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FUELALGORITHM = Field.create("FUELALGORITHM", 376, FieldType.INT8, engine_load_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALSMAXTPS = Field.create("ALSMAXTPS", 377, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final String[] Gpio = {"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"}; - public static final Field CRITICALLEDPIN = Field.create("CRITICALLEDPIN", 382, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CRANKINGINJECTIONMODE = Field.create("CRANKINGINJECTIONMODE", 384, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONMODE = Field.create("INJECTIONMODE", 385, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCONTROLMINRPM = Field.create("BOOSTCONTROLMINRPM", 386, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCONTROLMINTPS = Field.create("BOOSTCONTROLMINTPS", 388, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCONTROLMINMAP = Field.create("BOOSTCONTROLMINMAP", 389, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_390 = Field.create("ALIGNMENTFILL_AT_390", 390, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CRANKINGTIMINGANGLE = Field.create("CRANKINGTIMINGANGLE", 392, FieldType.FLOAT).setBaseOffset(0); - public static final Field IGNITIONMODE = Field.create("IGNITIONMODE", 396, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GAPTRACKINGLENGTHOVERRIDE = Field.create("GAPTRACKINGLENGTHOVERRIDE", 397, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAXIDLEVSS = Field.create("MAXIDLEVSS", 398, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CRITICALLEDPIN = Field.create("CRITICALLEDPIN", 378, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CRANKINGINJECTIONMODE = Field.create("CRANKINGINJECTIONMODE", 380, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONMODE = Field.create("INJECTIONMODE", 381, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCONTROLMINRPM = Field.create("BOOSTCONTROLMINRPM", 382, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCONTROLMINTPS = Field.create("BOOSTCONTROLMINTPS", 384, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCONTROLMINMAP = Field.create("BOOSTCONTROLMINMAP", 385, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_386 = Field.create("ALIGNMENTFILL_AT_386", 386, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CRANKINGTIMINGANGLE = Field.create("CRANKINGTIMINGANGLE", 388, FieldType.FLOAT).setBaseOffset(0); + public static final Field IGNITIONMODE = Field.create("IGNITIONMODE", 392, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GAPTRACKINGLENGTHOVERRIDE = Field.create("GAPTRACKINGLENGTHOVERRIDE", 393, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAXIDLEVSS = Field.create("MAXIDLEVSS", 394, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_395 = Field.create("ALIGNMENTFILL_AT_395", 395, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MINOILPRESSUREAFTERSTART = Field.create("MINOILPRESSUREAFTERSTART", 396, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TIMINGMODE = Field.create("TIMINGMODE", 398, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field ALIGNMENTFILL_AT_399 = Field.create("ALIGNMENTFILL_AT_399", 399, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MINOILPRESSUREAFTERSTART = Field.create("MINOILPRESSUREAFTERSTART", 400, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TIMINGMODE = Field.create("TIMINGMODE", 402, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_403 = Field.create("ALIGNMENTFILL_AT_403", 403, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FIXEDMODETIMING = Field.create("FIXEDMODETIMING", 404, FieldType.FLOAT).setBaseOffset(0); - public static final Field GLOBALTRIGGERANGLEOFFSET = Field.create("GLOBALTRIGGERANGLEOFFSET", 408, FieldType.FLOAT).setBaseOffset(0); - public static final Field ANALOGINPUTDIVIDERCOEFFICIENT = Field.create("ANALOGINPUTDIVIDERCOEFFICIENT", 412, FieldType.FLOAT).setBaseOffset(0); - public static final Field VBATTDIVIDERCOEFF = Field.create("VBATTDIVIDERCOEFF", 416, FieldType.FLOAT).setBaseOffset(0); - public static final Field FANONTEMPERATURE = Field.create("FANONTEMPERATURE", 420, FieldType.FLOAT).setBaseOffset(0); - public static final Field FANOFFTEMPERATURE = Field.create("FANOFFTEMPERATURE", 424, FieldType.FLOAT).setBaseOffset(0); - public static final Field DRIVEWHEELREVPERKM = Field.create("DRIVEWHEELREVPERKM", 428, FieldType.FLOAT).setBaseOffset(0); - public static final Field CANNBCTYPE = Field.create("CANNBCTYPE", 432, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_433 = Field.create("ALIGNMENTFILL_AT_433", 433, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CANSLEEPPERIODMS = Field.create("CANSLEEPPERIODMS", 436, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field DISPLAYMODE = Field.create("DISPLAYMODE", 440, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_441 = Field.create("ALIGNMENTFILL_AT_441", 441, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BYFIRMWAREVERSION = Field.create("BYFIRMWAREVERSION", 444, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field HD44780WIDTH = Field.create("HD44780WIDTH", 448, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field HD44780HEIGHT = Field.create("HD44780HEIGHT", 452, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TPS1_1ADCCHANNEL = Field.create("TPS1_1ADCCHANNEL", 456, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field VBATTADCCHANNEL = Field.create("VBATTADCCHANNEL", 457, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field FUELLEVELSENSOR = Field.create("FUELLEVELSENSOR", 458, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field TPS2_1ADCCHANNEL = Field.create("TPS2_1ADCCHANNEL", 459, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_DERIVATIVEFILTERLOSS = Field.create("IDLE_DERIVATIVEFILTERLOSS", 460, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRAILINGSPARKANGLE = Field.create("TRAILINGSPARKANGLE", 464, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field FIXEDMODETIMING = Field.create("FIXEDMODETIMING", 400, FieldType.FLOAT).setBaseOffset(0); + public static final Field GLOBALTRIGGERANGLEOFFSET = Field.create("GLOBALTRIGGERANGLEOFFSET", 404, FieldType.FLOAT).setBaseOffset(0); + public static final Field ANALOGINPUTDIVIDERCOEFFICIENT = Field.create("ANALOGINPUTDIVIDERCOEFFICIENT", 408, FieldType.FLOAT).setBaseOffset(0); + public static final Field VBATTDIVIDERCOEFF = Field.create("VBATTDIVIDERCOEFF", 412, FieldType.FLOAT).setBaseOffset(0); + public static final Field FANONTEMPERATURE = Field.create("FANONTEMPERATURE", 416, FieldType.FLOAT).setBaseOffset(0); + public static final Field FANOFFTEMPERATURE = Field.create("FANOFFTEMPERATURE", 420, FieldType.FLOAT).setBaseOffset(0); + public static final Field DRIVEWHEELREVPERKM = Field.create("DRIVEWHEELREVPERKM", 424, FieldType.FLOAT).setBaseOffset(0); + public static final Field CANNBCTYPE = Field.create("CANNBCTYPE", 428, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_429 = Field.create("ALIGNMENTFILL_AT_429", 429, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CANSLEEPPERIODMS = Field.create("CANSLEEPPERIODMS", 432, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field UNUSED440 = Field.create("UNUSED440", 436, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_437 = Field.create("ALIGNMENTFILL_AT_437", 437, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BYFIRMWAREVERSION = Field.create("BYFIRMWAREVERSION", 440, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TPS1_1ADCCHANNEL = Field.create("TPS1_1ADCCHANNEL", 444, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field VBATTADCCHANNEL = Field.create("VBATTADCCHANNEL", 445, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field FUELLEVELSENSOR = Field.create("FUELLEVELSENSOR", 446, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field TPS2_1ADCCHANNEL = Field.create("TPS2_1ADCCHANNEL", 447, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_DERIVATIVEFILTERLOSS = Field.create("IDLE_DERIVATIVEFILTERLOSS", 448, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRAILINGSPARKANGLE = Field.create("TRAILINGSPARKANGLE", 452, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final String[] trigger_type_e = {"custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75"}; - public static final Field TRIGGER_TYPE = Field.create("TRIGGER_TYPE", 468, FieldType.INT, trigger_type_e).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGER_CUSTOMTOTALTOOTHCOUNT = Field.create("TRIGGER_CUSTOMTOTALTOOTHCOUNT", 472, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGER_CUSTOMSKIPPEDTOOTHCOUNT = Field.create("TRIGGER_CUSTOMSKIPPEDTOOTHCOUNT", 476, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field AIRBYRPMTAPER = Field.create("AIRBYRPMTAPER", 480, FieldType.FLOAT).setBaseOffset(0); - public static final Field HIP9011SPIDEVICE = Field.create("HIP9011SPIDEVICE", 484, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FAILEDMAPFALLBACK = Field.create("FAILEDMAPFALLBACK", 485, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCONTROLSAFEDUTYCYCLE = Field.create("BOOSTCONTROLSAFEDUTYCYCLE", 486, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAFADCCHANNEL = Field.create("MAFADCCHANNEL", 487, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GLOBALFUELCORRECTION = Field.create("GLOBALFUELCORRECTION", 488, FieldType.FLOAT).setBaseOffset(0); - public static final Field ADCVCC = Field.create("ADCVCC", 492, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAPCAMDETECTIONANGLEPOSITION = Field.create("MAPCAMDETECTIONANGLEPOSITION", 496, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGER_TYPE = Field.create("TRIGGER_TYPE", 456, FieldType.INT, trigger_type_e).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGER_CUSTOMTOTALTOOTHCOUNT = Field.create("TRIGGER_CUSTOMTOTALTOOTHCOUNT", 460, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGER_CUSTOMSKIPPEDTOOTHCOUNT = Field.create("TRIGGER_CUSTOMSKIPPEDTOOTHCOUNT", 464, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field AIRBYRPMTAPER = Field.create("AIRBYRPMTAPER", 468, FieldType.FLOAT).setBaseOffset(0); + public static final Field FAILEDMAPFALLBACK = Field.create("FAILEDMAPFALLBACK", 472, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCONTROLSAFEDUTYCYCLE = Field.create("BOOSTCONTROLSAFEDUTYCYCLE", 473, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAFADCCHANNEL = Field.create("MAFADCCHANNEL", 474, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_475 = Field.create("ALIGNMENTFILL_AT_475", 475, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GLOBALFUELCORRECTION = Field.create("GLOBALFUELCORRECTION", 476, FieldType.FLOAT).setBaseOffset(0); + public static final Field ADCVCC = Field.create("ADCVCC", 480, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAPCAMDETECTIONANGLEPOSITION = Field.create("MAPCAMDETECTIONANGLEPOSITION", 484, FieldType.FLOAT).setBaseOffset(0); public static final String[] brain_input_pin_e = {"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"}; - public static final Field CAMINPUTS1 = Field.create("CAMINPUTS1", 500, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CAMINPUTS2 = Field.create("CAMINPUTS2", 502, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CAMINPUTS3 = Field.create("CAMINPUTS3", 504, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CAMINPUTS4 = Field.create("CAMINPUTS4", 506, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field AFR_HWCHANNEL = Field.create("AFR_HWCHANNEL", 508, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AFR_HWCHANNEL2 = Field.create("AFR_HWCHANNEL2", 509, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AFR_ALIGNMENTFILL_AT_2 = Field.create("AFR_ALIGNMENTFILL_AT_2", 510, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AFR_V1 = Field.create("AFR_V1", 512, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFR_VALUE1 = Field.create("AFR_VALUE1", 516, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFR_V2 = Field.create("AFR_V2", 520, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFR_VALUE2 = Field.create("AFR_VALUE2", 524, FieldType.FLOAT).setBaseOffset(0); - public static final Field THROTTLEPEDALPOSITIONADCCHANNEL = Field.create("THROTTLEPEDALPOSITIONADCCHANNEL", 528, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_529 = Field.create("ALIGNMENTFILL_AT_529", 529, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TLE6240_CS = Field.create("TLE6240_CS", 530, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTS1 = Field.create("CAMINPUTS1", 488, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTS2 = Field.create("CAMINPUTS2", 490, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTS3 = Field.create("CAMINPUTS3", 492, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTS4 = Field.create("CAMINPUTS4", 494, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field AFR_HWCHANNEL = Field.create("AFR_HWCHANNEL", 496, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AFR_HWCHANNEL2 = Field.create("AFR_HWCHANNEL2", 497, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AFR_ALIGNMENTFILL_AT_2 = Field.create("AFR_ALIGNMENTFILL_AT_2", 498, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AFR_V1 = Field.create("AFR_V1", 500, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFR_VALUE1 = Field.create("AFR_VALUE1", 504, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFR_V2 = Field.create("AFR_V2", 508, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFR_VALUE2 = Field.create("AFR_VALUE2", 512, FieldType.FLOAT).setBaseOffset(0); + public static final Field THROTTLEPEDALPOSITIONADCCHANNEL = Field.create("THROTTLEPEDALPOSITIONADCCHANNEL", 516, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_517 = Field.create("ALIGNMENTFILL_AT_517", 517, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TLE6240_CS = Field.create("TLE6240_CS", 518, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); public static final String[] pin_output_mode_e = {"default", "default inverted", "open collector", "open collector inverted"}; - public static final Field TLE6240_CSPINMODE = Field.create("TLE6240_CSPINMODE", 532, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_533 = Field.create("ALIGNMENTFILL_AT_533", 533, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TLE6240_CSPINMODE = Field.create("TLE6240_CSPINMODE", 520, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_521 = Field.create("ALIGNMENTFILL_AT_521", 521, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final String[] switch_input_pin_e = {"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"}; - public static final Field THROTTLEPEDALUPPIN = Field.create("THROTTLEPEDALUPPIN", 534, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field BAROSENSOR_LOWVALUE = Field.create("BAROSENSOR_LOWVALUE", 536, FieldType.FLOAT).setBaseOffset(0); - public static final Field BAROSENSOR_HIGHVALUE = Field.create("BAROSENSOR_HIGHVALUE", 540, FieldType.FLOAT).setBaseOffset(0); - public static final Field BAROSENSOR_TYPE = Field.create("BAROSENSOR_TYPE", 544, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BAROSENSOR_HWCHANNEL = Field.create("BAROSENSOR_HWCHANNEL", 545, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field BAROSENSOR_ALIGNMENTFILL_AT_10 = Field.create("BAROSENSOR_ALIGNMENTFILL_AT_10", 546, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_SOLENOIDFREQUENCY = Field.create("IDLE_SOLENOIDFREQUENCY", 548, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLEPEDALUPPIN = Field.create("THROTTLEPEDALUPPIN", 522, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field BAROSENSOR_LOWVALUE = Field.create("BAROSENSOR_LOWVALUE", 524, FieldType.FLOAT).setBaseOffset(0); + public static final Field BAROSENSOR_HIGHVALUE = Field.create("BAROSENSOR_HIGHVALUE", 528, FieldType.FLOAT).setBaseOffset(0); + public static final Field BAROSENSOR_TYPE = Field.create("BAROSENSOR_TYPE", 532, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BAROSENSOR_HWCHANNEL = Field.create("BAROSENSOR_HWCHANNEL", 533, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field BAROSENSOR_ALIGNMENTFILL_AT_10 = Field.create("BAROSENSOR_ALIGNMENTFILL_AT_10", 534, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_SOLENOIDFREQUENCY = Field.create("IDLE_SOLENOIDFREQUENCY", 536, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final String[] output_pin_e = {"NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"}; - public static final Field IDLE_SOLENOIDPIN = Field.create("IDLE_SOLENOIDPIN", 552, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_STEPPERDIRECTIONPIN = Field.create("IDLE_STEPPERDIRECTIONPIN", 554, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_STEPPERSTEPPIN = Field.create("IDLE_STEPPERSTEPPIN", 556, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_SOLENOIDPINMODE = Field.create("IDLE_SOLENOIDPINMODE", 558, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_ALIGNMENTFILL_AT_11 = Field.create("IDLE_ALIGNMENTFILL_AT_11", 559, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MANIDLEPOSITION = Field.create("MANIDLEPOSITION", 560, FieldType.FLOAT).setBaseOffset(0); - public static final Field KNOCKRETARDAGGRESSION = Field.create("KNOCKRETARDAGGRESSION", 564, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field KNOCKRETARDREAPPLYRATE = Field.create("KNOCKRETARDREAPPLYRATE", 565, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field ENGINESYNCCAM = Field.create("ENGINESYNCCAM", 566, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VSSFILTERRECIPROCAL = Field.create("VSSFILTERRECIPROCAL", 567, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VSSGEARRATIO = Field.create("VSSGEARRATIO", 568, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field VSSTOOTHCOUNT = Field.create("VSSTOOTHCOUNT", 570, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_571 = Field.create("ALIGNMENTFILL_AT_571", 571, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field L9779_CS = Field.create("L9779_CS", 572, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_574 = Field.create("ALIGNMENTFILL_AT_574", 574, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERSIMULATORFREQUENCY = Field.create("TRIGGERSIMULATORFREQUENCY", 576, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS1 = Field.create("INJECTIONPINS1", 580, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS2 = Field.create("INJECTIONPINS2", 582, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS3 = Field.create("INJECTIONPINS3", 584, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS4 = Field.create("INJECTIONPINS4", 586, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS5 = Field.create("INJECTIONPINS5", 588, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS6 = Field.create("INJECTIONPINS6", 590, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS7 = Field.create("INJECTIONPINS7", 592, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS8 = Field.create("INJECTIONPINS8", 594, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS9 = Field.create("INJECTIONPINS9", 596, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS10 = Field.create("INJECTIONPINS10", 598, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS11 = Field.create("INJECTIONPINS11", 600, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINS12 = Field.create("INJECTIONPINS12", 602, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS1 = Field.create("IGNITIONPINS1", 604, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS2 = Field.create("IGNITIONPINS2", 606, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS3 = Field.create("IGNITIONPINS3", 608, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS4 = Field.create("IGNITIONPINS4", 610, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS5 = Field.create("IGNITIONPINS5", 612, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS6 = Field.create("IGNITIONPINS6", 614, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS7 = Field.create("IGNITIONPINS7", 616, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS8 = Field.create("IGNITIONPINS8", 618, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS9 = Field.create("IGNITIONPINS9", 620, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS10 = Field.create("IGNITIONPINS10", 622, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS11 = Field.create("IGNITIONPINS11", 624, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINS12 = Field.create("IGNITIONPINS12", 626, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONPINMODE = Field.create("INJECTIONPINMODE", 628, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONPINMODE = Field.create("IGNITIONPINMODE", 629, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field HD44780_RS = Field.create("HD44780_RS", 630, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HD44780_E = Field.create("HD44780_E", 632, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HD44780_DB4 = Field.create("HD44780_DB4", 634, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HD44780_DB5 = Field.create("HD44780_DB5", 636, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HD44780_DB6 = Field.create("HD44780_DB6", 638, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HD44780_DB7 = Field.create("HD44780_DB7", 640, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field GPS_RX_PIN = Field.create("GPS_RX_PIN", 642, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field GPS_TX_PIN = Field.create("GPS_TX_PIN", 644, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field FUELPUMPPIN = Field.create("FUELPUMPPIN", 646, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field FUELPUMPPINMODE = Field.create("FUELPUMPPINMODE", 648, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_649 = Field.create("ALIGNMENTFILL_AT_649", 649, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MALFUNCTIONINDICATORPIN = Field.create("MALFUNCTIONINDICATORPIN", 650, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field MALFUNCTIONINDICATORPINMODE = Field.create("MALFUNCTIONINDICATORPINMODE", 652, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field FANPINMODE = Field.create("FANPINMODE", 653, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field FANPIN = Field.create("FANPIN", 654, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CLUTCHDOWNPIN = Field.create("CLUTCHDOWNPIN", 656, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ALTERNATORCONTROLPIN = Field.create("ALTERNATORCONTROLPIN", 658, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ALTERNATORCONTROLPINMODE = Field.create("ALTERNATORCONTROLPINMODE", 660, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_SOLENOIDPIN = Field.create("IDLE_SOLENOIDPIN", 540, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_STEPPERDIRECTIONPIN = Field.create("IDLE_STEPPERDIRECTIONPIN", 542, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_STEPPERSTEPPIN = Field.create("IDLE_STEPPERSTEPPIN", 544, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_SOLENOIDPINMODE = Field.create("IDLE_SOLENOIDPINMODE", 546, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_ALIGNMENTFILL_AT_11 = Field.create("IDLE_ALIGNMENTFILL_AT_11", 547, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MANIDLEPOSITION = Field.create("MANIDLEPOSITION", 548, FieldType.FLOAT).setBaseOffset(0); + public static final Field KNOCKRETARDAGGRESSION = Field.create("KNOCKRETARDAGGRESSION", 552, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field KNOCKRETARDREAPPLYRATE = Field.create("KNOCKRETARDREAPPLYRATE", 553, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field ENGINESYNCCAM = Field.create("ENGINESYNCCAM", 554, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VSSFILTERRECIPROCAL = Field.create("VSSFILTERRECIPROCAL", 555, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VSSGEARRATIO = Field.create("VSSGEARRATIO", 556, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field VSSTOOTHCOUNT = Field.create("VSSTOOTHCOUNT", 558, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_559 = Field.create("ALIGNMENTFILL_AT_559", 559, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field L9779_CS = Field.create("L9779_CS", 560, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_562 = Field.create("ALIGNMENTFILL_AT_562", 562, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERSIMULATORFREQUENCY = Field.create("TRIGGERSIMULATORFREQUENCY", 564, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS1 = Field.create("INJECTIONPINS1", 568, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS2 = Field.create("INJECTIONPINS2", 570, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS3 = Field.create("INJECTIONPINS3", 572, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS4 = Field.create("INJECTIONPINS4", 574, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS5 = Field.create("INJECTIONPINS5", 576, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS6 = Field.create("INJECTIONPINS6", 578, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS7 = Field.create("INJECTIONPINS7", 580, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS8 = Field.create("INJECTIONPINS8", 582, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS9 = Field.create("INJECTIONPINS9", 584, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS10 = Field.create("INJECTIONPINS10", 586, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS11 = Field.create("INJECTIONPINS11", 588, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINS12 = Field.create("INJECTIONPINS12", 590, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS1 = Field.create("IGNITIONPINS1", 592, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS2 = Field.create("IGNITIONPINS2", 594, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS3 = Field.create("IGNITIONPINS3", 596, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS4 = Field.create("IGNITIONPINS4", 598, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS5 = Field.create("IGNITIONPINS5", 600, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS6 = Field.create("IGNITIONPINS6", 602, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS7 = Field.create("IGNITIONPINS7", 604, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS8 = Field.create("IGNITIONPINS8", 606, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS9 = Field.create("IGNITIONPINS9", 608, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS10 = Field.create("IGNITIONPINS10", 610, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS11 = Field.create("IGNITIONPINS11", 612, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINS12 = Field.create("IGNITIONPINS12", 614, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONPINMODE = Field.create("INJECTIONPINMODE", 616, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONPINMODE = Field.create("IGNITIONPINMODE", 617, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field FUELPUMPPIN = Field.create("FUELPUMPPIN", 618, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field FUELPUMPPINMODE = Field.create("FUELPUMPPINMODE", 620, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_621 = Field.create("ALIGNMENTFILL_AT_621", 621, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MALFUNCTIONINDICATORPIN = Field.create("MALFUNCTIONINDICATORPIN", 622, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field MALFUNCTIONINDICATORPINMODE = Field.create("MALFUNCTIONINDICATORPINMODE", 624, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field FANPINMODE = Field.create("FANPINMODE", 625, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field FANPIN = Field.create("FANPIN", 626, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field CLUTCHDOWNPIN = Field.create("CLUTCHDOWNPIN", 628, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field ALTERNATORCONTROLPIN = Field.create("ALTERNATORCONTROLPIN", 630, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field ALTERNATORCONTROLPINMODE = Field.create("ALTERNATORCONTROLPINMODE", 632, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); public static final String[] pin_input_mode_e = {"DEFAULT", "PULLUP", "PULLDOWN"}; - public static final Field CLUTCHDOWNPINMODE = Field.create("CLUTCHDOWNPINMODE", 661, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field DIGITALPOTENTIOMETERCHIPSELECT1 = Field.create("DIGITALPOTENTIOMETERCHIPSELECT1", 662, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field DIGITALPOTENTIOMETERCHIPSELECT2 = Field.create("DIGITALPOTENTIOMETERCHIPSELECT2", 664, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field DIGITALPOTENTIOMETERCHIPSELECT3 = Field.create("DIGITALPOTENTIOMETERCHIPSELECT3", 666, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field DIGITALPOTENTIOMETERCHIPSELECT4 = Field.create("DIGITALPOTENTIOMETERCHIPSELECT4", 668, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ELECTRONICTHROTTLEPIN1MODE = Field.create("ELECTRONICTHROTTLEPIN1MODE", 670, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_671 = Field.create("ALIGNMENTFILL_AT_671", 671, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field WBOHEATERPIN = Field.create("WBOHEATERPIN", 672, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CJ125CSPIN = Field.create("CJ125CSPIN", 674, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855SPIDEVICE = Field.create("MAX31855SPIDEVICE", 676, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_677 = Field.create("ALIGNMENTFILL_AT_677", 677, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DEBUGTRIGGERSYNC = Field.create("DEBUGTRIGGERSYNC", 678, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field DIGITALPOTENTIOMETERSPIDEVICE = Field.create("DIGITALPOTENTIOMETERSPIDEVICE", 680, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_681 = Field.create("ALIGNMENTFILL_AT_681", 681, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MC33972_CS = Field.create("MC33972_CS", 682, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MC33972_CSPINMODE = Field.create("MC33972_CSPINMODE", 684, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXFASTSENSOR1_ADCCHANNEL = Field.create("AUXFASTSENSOR1_ADCCHANNEL", 685, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field TPS1_2ADCCHANNEL = Field.create("TPS1_2ADCCHANNEL", 686, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field TPS2_2ADCCHANNEL = Field.create("TPS2_2ADCCHANNEL", 687, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field THROTTLEPEDALPOSITIONSECONDADCCHANNEL = Field.create("THROTTLEPEDALPOSITIONSECONDADCCHANNEL", 688, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field FUELLEVELVALUES = Field.create("FUELLEVELVALUES", 689, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final String[] ego_sensor_e = {"BPSX", "Innovate", "14Point7", "Narrow", "PLX", "Custom"}; - public static final Field AFR_TYPE = Field.create("AFR_TYPE", 697, FieldType.INT8, ego_sensor_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_698 = Field.create("ALIGNMENTFILL_AT_698", 698, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IDLE_ANTIWINDUPFREQ = Field.create("IDLE_ANTIWINDUPFREQ", 700, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERINPUTPINS1 = Field.create("TRIGGERINPUTPINS1", 704, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERINPUTPINS2 = Field.create("TRIGGERINPUTPINS2", 706, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_MIN_BOOST = Field.create("MC33_T_MIN_BOOST", 708, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field HIP9011CSPINMODE = Field.create("HIP9011CSPINMODE", 710, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_711 = Field.create("ALIGNMENTFILL_AT_711", 711, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TACHOUTPUTPIN = Field.create("TACHOUTPUTPIN", 712, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TACHOUTPUTPINMODE = Field.create("TACHOUTPUTPINMODE", 714, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_715 = Field.create("ALIGNMENTFILL_AT_715", 715, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAINRELAYPIN = Field.create("MAINRELAYPIN", 716, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field SDCARDCSPIN = Field.create("SDCARDCSPIN", 718, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CANTXPIN = Field.create("CANTXPIN", 720, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CANRXPIN = Field.create("CANRXPIN", 722, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field THROTTLEPEDALUPPINMODE = Field.create("THROTTLEPEDALUPPINMODE", 724, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ACIDLEEXTRAOFFSET = Field.create("ACIDLEEXTRAOFFSET", 725, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FINALGEARRATIO = Field.create("FINALGEARRATIO", 726, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field TCUINPUTSPEEDSENSORPIN = Field.create("TCUINPUTSPEEDSENSORPIN", 728, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCUINPUTSPEEDSENSORTEETH = Field.create("TCUINPUTSPEEDSENSORTEETH", 730, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_731 = Field.create("ALIGNMENTFILL_AT_731", 731, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field WASTEGATEPOSITIONMIN = Field.create("WASTEGATEPOSITIONMIN", 732, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field WASTEGATEPOSITIONMAX = Field.create("WASTEGATEPOSITIONMAX", 734, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLEPOSITIONMIN = Field.create("IDLEPOSITIONMIN", 736, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLEPOSITIONMAX = Field.create("IDLEPOSITIONMAX", 738, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TUNERSTUDIOSERIALSPEED = Field.create("TUNERSTUDIOSERIALSPEED", 740, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field COMPRESSIONRATIO = Field.create("COMPRESSIONRATIO", 744, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERSIMULATORPINS1 = Field.create("TRIGGERSIMULATORPINS1", 748, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERSIMULATORPINS2 = Field.create("TRIGGERSIMULATORPINS2", 750, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field FORDINJECTORSMALLPULSESLOPE = Field.create("FORDINJECTORSMALLPULSESLOPE", 752, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field TRIGGERSIMULATORPINMODES1 = Field.create("TRIGGERSIMULATORPINMODES1", 754, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERSIMULATORPINMODES2 = Field.create("TRIGGERSIMULATORPINMODES2", 755, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field MAF2ADCCHANNEL = Field.create("MAF2ADCCHANNEL", 756, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_757 = Field.create("ALIGNMENTFILL_AT_757", 757, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field O2HEATERPIN = Field.create("O2HEATERPIN", 758, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field O2HEATERPINMODETODO = Field.create("O2HEATERPINMODETODO", 760, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_761 = Field.create("ALIGNMENTFILL_AT_761", 761, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IS_ENABLED_SPI_1 = Field.create("IS_ENABLED_SPI_1", 764, FieldType.BIT, 0).setBaseOffset(0); - public static final Field IS_ENABLED_SPI_2 = Field.create("IS_ENABLED_SPI_2", 764, FieldType.BIT, 1).setBaseOffset(0); - public static final Field IS_ENABLED_SPI_3 = Field.create("IS_ENABLED_SPI_3", 764, FieldType.BIT, 2).setBaseOffset(0); - public static final Field ISSDCARDENABLED = Field.create("ISSDCARDENABLED", 764, FieldType.BIT, 3).setBaseOffset(0); - public static final Field RUSEFIVERBOSE29B = Field.create("RUSEFIVERBOSE29B", 764, FieldType.BIT, 4).setBaseOffset(0); - public static final Field ISENGINECONTROLENABLED = Field.create("ISENGINECONTROLENABLED", 764, FieldType.BIT, 5).setBaseOffset(0); - public static final Field ISHIP9011ENABLED = Field.create("ISHIP9011ENABLED", 764, FieldType.BIT, 6).setBaseOffset(0); - public static final Field ISVERBOSEALTERNATOR = Field.create("ISVERBOSEALTERNATOR", 764, FieldType.BIT, 7).setBaseOffset(0); - public static final Field VERBOSEQUAD = Field.create("VERBOSEQUAD", 764, FieldType.BIT, 8).setBaseOffset(0); - public static final Field USESTEPPERIDLE = Field.create("USESTEPPERIDLE", 764, FieldType.BIT, 9).setBaseOffset(0); - public static final Field ENABLEDSTEP1LIMITER = Field.create("ENABLEDSTEP1LIMITER", 764, FieldType.BIT, 10).setBaseOffset(0); - public static final Field USETPICADVANCEDMODE = Field.create("USETPICADVANCEDMODE", 764, FieldType.BIT, 11).setBaseOffset(0); - public static final Field USELCDSCREEN = Field.create("USELCDSCREEN", 764, FieldType.BIT, 12).setBaseOffset(0); - public static final Field VERBOSETLE8888 = Field.create("VERBOSETLE8888", 764, FieldType.BIT, 13).setBaseOffset(0); - public static final Field ENABLEVERBOSECANTX = Field.create("ENABLEVERBOSECANTX", 764, FieldType.BIT, 14).setBaseOffset(0); - public static final Field ETB1CONFIGURED = Field.create("ETB1CONFIGURED", 764, FieldType.BIT, 15).setBaseOffset(0); - public static final Field ISCJ125ENABLED = Field.create("ISCJ125ENABLED", 764, FieldType.BIT, 16).setBaseOffset(0); - public static final Field ETB2CONFIGURED = Field.create("ETB2CONFIGURED", 764, FieldType.BIT, 17).setBaseOffset(0); - public static final Field MEASUREMAPONLYINONECYLINDER = Field.create("MEASUREMAPONLYINONECYLINDER", 764, FieldType.BIT, 18).setBaseOffset(0); - public static final Field STEPPERFORCEPARKINGEVERYRESTART = Field.create("STEPPERFORCEPARKINGEVERYRESTART", 764, FieldType.BIT, 19).setBaseOffset(0); - public static final Field ISFASTERENGINESPINUPENABLED = Field.create("ISFASTERENGINESPINUPENABLED", 764, FieldType.BIT, 20).setBaseOffset(0); - public static final Field COASTINGFUELCUTENABLED = Field.create("COASTINGFUELCUTENABLED", 764, FieldType.BIT, 21).setBaseOffset(0); - public static final Field USEIACTABLEFORCOASTING = Field.create("USEIACTABLEFORCOASTING", 764, FieldType.BIT, 22).setBaseOffset(0); - public static final Field USENOISELESSTRIGGERDECODER = Field.create("USENOISELESSTRIGGERDECODER", 764, FieldType.BIT, 23).setBaseOffset(0); - public static final Field USEIDLETIMINGPIDCONTROL = Field.create("USEIDLETIMINGPIDCONTROL", 764, FieldType.BIT, 24).setBaseOffset(0); - public static final Field DISABLEETBWHENENGINESTOPPED = Field.create("DISABLEETBWHENENGINESTOPPED", 764, FieldType.BIT, 25).setBaseOffset(0); - public static final Field IS_ENABLED_SPI_4 = Field.create("IS_ENABLED_SPI_4", 764, FieldType.BIT, 26).setBaseOffset(0); - public static final Field PAUSEETBCONTROL = Field.create("PAUSEETBCONTROL", 764, FieldType.BIT, 27).setBaseOffset(0); - public static final Field ALIGNENGINESNIFFERATTDC = Field.create("ALIGNENGINESNIFFERATTDC", 764, FieldType.BIT, 28).setBaseOffset(0); - public static final Field IDLEINCREMENTALPIDCIC = Field.create("IDLEINCREMENTALPIDCIC", 764, FieldType.BIT, 30).setBaseOffset(0); - public static final Field ENABLEAEMXSERIES = Field.create("ENABLEAEMXSERIES", 764, FieldType.BIT, 31).setBaseOffset(0); - public static final Field LOGICANALYZERPINS1 = Field.create("LOGICANALYZERPINS1", 768, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LOGICANALYZERPINS2 = Field.create("LOGICANALYZERPINS2", 770, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LOGICANALYZERPINS3 = Field.create("LOGICANALYZERPINS3", 772, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LOGICANALYZERPINS4 = Field.create("LOGICANALYZERPINS4", 774, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field MAINRELAYPINMODE = Field.create("MAINRELAYPINMODE", 776, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_777 = Field.create("ALIGNMENTFILL_AT_777", 777, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HIP9011CSPIN = Field.create("HIP9011CSPIN", 778, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HIP9011INTHOLDPIN = Field.create("HIP9011INTHOLDPIN", 780, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field HIP9011INTHOLDPINMODE = Field.create("HIP9011INTHOLDPINMODE", 782, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_783 = Field.create("ALIGNMENTFILL_AT_783", 783, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VERBOSECANBASEADDRESS = Field.create("VERBOSECANBASEADDRESS", 784, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field MC33_HVOLT = Field.create("MC33_HVOLT", 788, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MINIMUMBOOSTCLOSEDLOOPMAP = Field.create("MINIMUMBOOSTCLOSEDLOOPMAP", 789, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ACFANPIN = Field.create("ACFANPIN", 790, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ACFANPINMODE = Field.create("ACFANPINMODE", 792, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field L9779SPIDEVICE = Field.create("L9779SPIDEVICE", 793, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DWELLVOLTAGECORRVOLTBINS = Field.create("DWELLVOLTAGECORRVOLTBINS", 794, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field IMUTYPE = Field.create("IMUTYPE", 802, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DWELLVOLTAGECORRVALUES = Field.create("DWELLVOLTAGECORRVALUES", 803, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_811 = Field.create("ALIGNMENTFILL_AT_811", 811, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEHICLEWEIGHT = Field.create("VEHICLEWEIGHT", 812, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLEPIDRPMUPPERLIMIT = Field.create("IDLEPIDRPMUPPERLIMIT", 814, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field APPLYNONLINEARBELOWPULSE = Field.create("APPLYNONLINEARBELOWPULSE", 816, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field LPS25BAROSENSORSCL = Field.create("LPS25BAROSENSORSCL", 818, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LPS25BAROSENSORSDA = Field.create("LPS25BAROSENSORSDA", 820, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field VEHICLESPEEDSENSORINPUTPIN = Field.create("VEHICLESPEEDSENSORINPUTPIN", 822, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CLUTCHUPPIN = Field.create("CLUTCHUPPIN", 824, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTORNONLINEARMODE = Field.create("INJECTORNONLINEARMODE", 826, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CLUTCHUPPINMODE = Field.create("CLUTCHUPPINMODE", 827, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS1 = Field.create("MAX31855_CS1", 828, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS2 = Field.create("MAX31855_CS2", 830, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS3 = Field.create("MAX31855_CS3", 832, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS4 = Field.create("MAX31855_CS4", 834, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS5 = Field.create("MAX31855_CS5", 836, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS6 = Field.create("MAX31855_CS6", 838, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS7 = Field.create("MAX31855_CS7", 840, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MAX31855_CS8 = Field.create("MAX31855_CS8", 842, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field FLEXSENSORPIN = Field.create("FLEXSENSORPIN", 844, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TEST557PIN = Field.create("TEST557PIN", 846, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDIRECTIONPINMODE = Field.create("STEPPERDIRECTIONPINMODE", 848, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field MC33972SPIDEVICE = Field.create("MC33972SPIDEVICE", 849, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STOICHRATIOSECONDARY = Field.create("STOICHRATIOSECONDARY", 850, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field ETBMAXIMUMPOSITION = Field.create("ETBMAXIMUMPOSITION", 851, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SDCARDLOGFREQUENCY = Field.create("SDCARDLOGFREQUENCY", 852, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLEPOSITIONSENSOR = Field.create("IDLEPOSITIONSENSOR", 854, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_855 = Field.create("ALIGNMENTFILL_AT_855", 855, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DEBUGMAPAVERAGING = Field.create("DEBUGMAPAVERAGING", 856, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STARTERRELAYDISABLEPIN = Field.create("STARTERRELAYDISABLEPIN", 858, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field STARTERRELAYDISABLEPINMODE = Field.create("STARTERRELAYDISABLEPINMODE", 860, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_861 = Field.create("ALIGNMENTFILL_AT_861", 861, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SECONDSOLENOIDPIN = Field.create("SECONDSOLENOIDPIN", 862, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field STARTSTOPBUTTONPIN = Field.create("STARTSTOPBUTTONPIN", 864, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_866 = Field.create("ALIGNMENTFILL_AT_866", 866, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAPMINBUFFERLENGTH = Field.create("MAPMINBUFFERLENGTH", 868, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field IDLEPIDDEACTIVATIONTPSTHRESHOLD = Field.create("IDLEPIDDEACTIVATIONTPSTHRESHOLD", 872, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERPARKINGEXTRASTEPS = Field.create("STEPPERPARKINGEXTRASTEPS", 874, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPS1SECONDARYMIN = Field.create("TPS1SECONDARYMIN", 876, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPS1SECONDARYMAX = Field.create("TPS1SECONDARYMAX", 878, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ANTILAGRPMTRESHOLD = Field.create("ANTILAGRPMTRESHOLD", 880, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field STARTCRANKINGDURATION = Field.create("STARTCRANKINGDURATION", 882, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERERRORPIN = Field.create("TRIGGERERRORPIN", 884, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERERRORPINMODE = Field.create("TRIGGERERRORPINMODE", 886, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_887 = Field.create("ALIGNMENTFILL_AT_887", 887, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ACRELAYPIN = Field.create("ACRELAYPIN", 888, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ACRELAYPINMODE = Field.create("ACRELAYPINMODE", 890, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_891 = Field.create("ALIGNMENTFILL_AT_891", 891, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING1 = Field.create("SCRIPTSETTING1", 892, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING2 = Field.create("SCRIPTSETTING2", 896, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING3 = Field.create("SCRIPTSETTING3", 900, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING4 = Field.create("SCRIPTSETTING4", 904, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING5 = Field.create("SCRIPTSETTING5", 908, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING6 = Field.create("SCRIPTSETTING6", 912, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING7 = Field.create("SCRIPTSETTING7", 916, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTING8 = Field.create("SCRIPTSETTING8", 920, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field SPI1MOSIPIN = Field.create("SPI1MOSIPIN", 924, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI1MISOPIN = Field.create("SPI1MISOPIN", 926, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI1SCKPIN = Field.create("SPI1SCKPIN", 928, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI2MOSIPIN = Field.create("SPI2MOSIPIN", 930, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI2MISOPIN = Field.create("SPI2MISOPIN", 932, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI2SCKPIN = Field.create("SPI2SCKPIN", 934, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI3MOSIPIN = Field.create("SPI3MOSIPIN", 936, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI3MISOPIN = Field.create("SPI3MISOPIN", 938, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field SPI3SCKPIN = Field.create("SPI3SCKPIN", 940, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CDMINPUTPIN = Field.create("CDMINPUTPIN", 942, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field JOYSTICKCENTERPIN = Field.create("JOYSTICKCENTERPIN", 944, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field JOYSTICKAPIN = Field.create("JOYSTICKAPIN", 946, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field JOYSTICKBPIN = Field.create("JOYSTICKBPIN", 948, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field JOYSTICKCPIN = Field.create("JOYSTICKCPIN", 950, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field JOYSTICKDPIN = Field.create("JOYSTICKDPIN", 952, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CONSOLEUARTDEVICE = Field.create("CONSOLEUARTDEVICE", 954, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CLUTCHDOWNPINMODE = Field.create("CLUTCHDOWNPINMODE", 633, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ELECTRONICTHROTTLEPIN1MODE = Field.create("ELECTRONICTHROTTLEPIN1MODE", 634, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855SPIDEVICE = Field.create("MAX31855SPIDEVICE", 635, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field DEBUGTRIGGERSYNC = Field.create("DEBUGTRIGGERSYNC", 636, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MC33972_CS = Field.create("MC33972_CS", 638, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MC33972_CSPINMODE = Field.create("MC33972_CSPINMODE", 640, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXFASTSENSOR1_ADCCHANNEL = Field.create("AUXFASTSENSOR1_ADCCHANNEL", 641, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field TPS1_2ADCCHANNEL = Field.create("TPS1_2ADCCHANNEL", 642, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field TPS2_2ADCCHANNEL = Field.create("TPS2_2ADCCHANNEL", 643, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLEPEDALPOSITIONSECONDADCCHANNEL = Field.create("THROTTLEPEDALPOSITIONSECONDADCCHANNEL", 644, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field FUELLEVELVALUES = Field.create("FUELLEVELVALUES", 645, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final String[] ego_sensor_e = {"BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom"}; + public static final Field AFR_TYPE = Field.create("AFR_TYPE", 653, FieldType.INT8, ego_sensor_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_654 = Field.create("ALIGNMENTFILL_AT_654", 654, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IDLE_ANTIWINDUPFREQ = Field.create("IDLE_ANTIWINDUPFREQ", 656, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERINPUTPINS1 = Field.create("TRIGGERINPUTPINS1", 660, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERINPUTPINS2 = Field.create("TRIGGERINPUTPINS2", 662, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_MIN_BOOST = Field.create("MC33_T_MIN_BOOST", 664, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TACHOUTPUTPIN = Field.create("TACHOUTPUTPIN", 666, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TACHOUTPUTPINMODE = Field.create("TACHOUTPUTPINMODE", 668, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_669 = Field.create("ALIGNMENTFILL_AT_669", 669, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAINRELAYPIN = Field.create("MAINRELAYPIN", 670, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field SDCARDCSPIN = Field.create("SDCARDCSPIN", 672, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CANTXPIN = Field.create("CANTXPIN", 674, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CANRXPIN = Field.create("CANRXPIN", 676, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLEPEDALUPPINMODE = Field.create("THROTTLEPEDALUPPINMODE", 678, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ACIDLEEXTRAOFFSET = Field.create("ACIDLEEXTRAOFFSET", 679, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FINALGEARRATIO = Field.create("FINALGEARRATIO", 680, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field TCUINPUTSPEEDSENSORPIN = Field.create("TCUINPUTSPEEDSENSORPIN", 682, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCUINPUTSPEEDSENSORTEETH = Field.create("TCUINPUTSPEEDSENSORTEETH", 684, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_685 = Field.create("ALIGNMENTFILL_AT_685", 685, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field WASTEGATEPOSITIONMIN = Field.create("WASTEGATEPOSITIONMIN", 686, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field WASTEGATEPOSITIONMAX = Field.create("WASTEGATEPOSITIONMAX", 688, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_690 = Field.create("ALIGNMENTFILL_AT_690", 690, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TUNERSTUDIOSERIALSPEED = Field.create("TUNERSTUDIOSERIALSPEED", 692, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field COMPRESSIONRATIO = Field.create("COMPRESSIONRATIO", 696, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERSIMULATORPINS1 = Field.create("TRIGGERSIMULATORPINS1", 700, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERSIMULATORPINS2 = Field.create("TRIGGERSIMULATORPINS2", 702, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field FORDINJECTORSMALLPULSESLOPE = Field.create("FORDINJECTORSMALLPULSESLOPE", 704, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field TRIGGERSIMULATORPINMODES1 = Field.create("TRIGGERSIMULATORPINMODES1", 706, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERSIMULATORPINMODES2 = Field.create("TRIGGERSIMULATORPINMODES2", 707, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field MAF2ADCCHANNEL = Field.create("MAF2ADCCHANNEL", 708, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_709 = Field.create("ALIGNMENTFILL_AT_709", 709, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field O2HEATERPIN = Field.create("O2HEATERPIN", 710, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field O2HEATERPINMODETODO = Field.create("O2HEATERPINMODETODO", 712, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_713 = Field.create("ALIGNMENTFILL_AT_713", 713, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IS_ENABLED_SPI_1 = Field.create("IS_ENABLED_SPI_1", 716, FieldType.BIT, 0).setBaseOffset(0); + public static final Field IS_ENABLED_SPI_2 = Field.create("IS_ENABLED_SPI_2", 716, FieldType.BIT, 1).setBaseOffset(0); + public static final Field IS_ENABLED_SPI_3 = Field.create("IS_ENABLED_SPI_3", 716, FieldType.BIT, 2).setBaseOffset(0); + public static final Field ISSDCARDENABLED = Field.create("ISSDCARDENABLED", 716, FieldType.BIT, 3).setBaseOffset(0); + public static final Field RUSEFIVERBOSE29B = Field.create("RUSEFIVERBOSE29B", 716, FieldType.BIT, 4).setBaseOffset(0); + public static final Field ISENGINECONTROLENABLED = Field.create("ISENGINECONTROLENABLED", 716, FieldType.BIT, 5).setBaseOffset(0); + public static final Field ISVERBOSEALTERNATOR = Field.create("ISVERBOSEALTERNATOR", 716, FieldType.BIT, 6).setBaseOffset(0); + public static final Field VERBOSEQUAD = Field.create("VERBOSEQUAD", 716, FieldType.BIT, 7).setBaseOffset(0); + public static final Field USESTEPPERIDLE = Field.create("USESTEPPERIDLE", 716, FieldType.BIT, 8).setBaseOffset(0); + public static final Field ENABLEDSTEP1LIMITER = Field.create("ENABLEDSTEP1LIMITER", 716, FieldType.BIT, 9).setBaseOffset(0); + public static final Field VERBOSETLE8888 = Field.create("VERBOSETLE8888", 716, FieldType.BIT, 11).setBaseOffset(0); + public static final Field ENABLEVERBOSECANTX = Field.create("ENABLEVERBOSECANTX", 716, FieldType.BIT, 12).setBaseOffset(0); + public static final Field ETB1CONFIGURED = Field.create("ETB1CONFIGURED", 716, FieldType.BIT, 13).setBaseOffset(0); + public static final Field ETB2CONFIGURED = Field.create("ETB2CONFIGURED", 716, FieldType.BIT, 14).setBaseOffset(0); + public static final Field MEASUREMAPONLYINONECYLINDER = Field.create("MEASUREMAPONLYINONECYLINDER", 716, FieldType.BIT, 15).setBaseOffset(0); + public static final Field STEPPERFORCEPARKINGEVERYRESTART = Field.create("STEPPERFORCEPARKINGEVERYRESTART", 716, FieldType.BIT, 16).setBaseOffset(0); + public static final Field ISFASTERENGINESPINUPENABLED = Field.create("ISFASTERENGINESPINUPENABLED", 716, FieldType.BIT, 17).setBaseOffset(0); + public static final Field COASTINGFUELCUTENABLED = Field.create("COASTINGFUELCUTENABLED", 716, FieldType.BIT, 18).setBaseOffset(0); + public static final Field USEIACTABLEFORCOASTING = Field.create("USEIACTABLEFORCOASTING", 716, FieldType.BIT, 19).setBaseOffset(0); + public static final Field USENOISELESSTRIGGERDECODER = Field.create("USENOISELESSTRIGGERDECODER", 716, FieldType.BIT, 20).setBaseOffset(0); + public static final Field USEIDLETIMINGPIDCONTROL = Field.create("USEIDLETIMINGPIDCONTROL", 716, FieldType.BIT, 21).setBaseOffset(0); + public static final Field DISABLEETBWHENENGINESTOPPED = Field.create("DISABLEETBWHENENGINESTOPPED", 716, FieldType.BIT, 22).setBaseOffset(0); + public static final Field IS_ENABLED_SPI_4 = Field.create("IS_ENABLED_SPI_4", 716, FieldType.BIT, 23).setBaseOffset(0); + public static final Field PAUSEETBCONTROL = Field.create("PAUSEETBCONTROL", 716, FieldType.BIT, 24).setBaseOffset(0); + public static final Field ALIGNENGINESNIFFERATTDC = Field.create("ALIGNENGINESNIFFERATTDC", 716, FieldType.BIT, 25).setBaseOffset(0); + public static final Field ENABLEAEMXSERIES = Field.create("ENABLEAEMXSERIES", 716, FieldType.BIT, 27).setBaseOffset(0); + public static final Field LOGICANALYZERPINS1 = Field.create("LOGICANALYZERPINS1", 720, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LOGICANALYZERPINS2 = Field.create("LOGICANALYZERPINS2", 722, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LOGICANALYZERPINS3 = Field.create("LOGICANALYZERPINS3", 724, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LOGICANALYZERPINS4 = Field.create("LOGICANALYZERPINS4", 726, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field MAINRELAYPINMODE = Field.create("MAINRELAYPINMODE", 728, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_729 = Field.create("ALIGNMENTFILL_AT_729", 729, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VERBOSECANBASEADDRESS = Field.create("VERBOSECANBASEADDRESS", 732, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field MC33_HVOLT = Field.create("MC33_HVOLT", 736, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MINIMUMBOOSTCLOSEDLOOPMAP = Field.create("MINIMUMBOOSTCLOSEDLOOPMAP", 737, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ACFANPIN = Field.create("ACFANPIN", 738, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field ACFANPINMODE = Field.create("ACFANPINMODE", 740, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field L9779SPIDEVICE = Field.create("L9779SPIDEVICE", 741, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field DWELLVOLTAGECORRVOLTBINS = Field.create("DWELLVOLTAGECORRVOLTBINS", 742, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field IMUTYPE = Field.create("IMUTYPE", 750, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field DWELLVOLTAGECORRVALUES = Field.create("DWELLVOLTAGECORRVALUES", 751, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_759 = Field.create("ALIGNMENTFILL_AT_759", 759, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEHICLEWEIGHT = Field.create("VEHICLEWEIGHT", 760, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLEPIDRPMUPPERLIMIT = Field.create("IDLEPIDRPMUPPERLIMIT", 762, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field APPLYNONLINEARBELOWPULSE = Field.create("APPLYNONLINEARBELOWPULSE", 764, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field LPS25BAROSENSORSCL = Field.create("LPS25BAROSENSORSCL", 766, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LPS25BAROSENSORSDA = Field.create("LPS25BAROSENSORSDA", 768, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field VEHICLESPEEDSENSORINPUTPIN = Field.create("VEHICLESPEEDSENSORINPUTPIN", 770, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field CLUTCHUPPIN = Field.create("CLUTCHUPPIN", 772, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTORNONLINEARMODE = Field.create("INJECTORNONLINEARMODE", 774, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CLUTCHUPPINMODE = Field.create("CLUTCHUPPINMODE", 775, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS1 = Field.create("MAX31855_CS1", 776, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS2 = Field.create("MAX31855_CS2", 778, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS3 = Field.create("MAX31855_CS3", 780, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS4 = Field.create("MAX31855_CS4", 782, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS5 = Field.create("MAX31855_CS5", 784, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS6 = Field.create("MAX31855_CS6", 786, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS7 = Field.create("MAX31855_CS7", 788, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MAX31855_CS8 = Field.create("MAX31855_CS8", 790, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field FLEXSENSORPIN = Field.create("FLEXSENSORPIN", 792, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TEST557PIN = Field.create("TEST557PIN", 794, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDIRECTIONPINMODE = Field.create("STEPPERDIRECTIONPINMODE", 796, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field MC33972SPIDEVICE = Field.create("MC33972SPIDEVICE", 797, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STOICHRATIOSECONDARY = Field.create("STOICHRATIOSECONDARY", 798, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field ETBMAXIMUMPOSITION = Field.create("ETBMAXIMUMPOSITION", 799, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SDCARDLOGFREQUENCY = Field.create("SDCARDLOGFREQUENCY", 800, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field DEBUGMAPAVERAGING = Field.create("DEBUGMAPAVERAGING", 802, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STARTERRELAYDISABLEPIN = Field.create("STARTERRELAYDISABLEPIN", 804, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field STARTERRELAYDISABLEPINMODE = Field.create("STARTERRELAYDISABLEPINMODE", 806, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_807 = Field.create("ALIGNMENTFILL_AT_807", 807, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SECONDSOLENOIDPIN = Field.create("SECONDSOLENOIDPIN", 808, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field STARTSTOPBUTTONPIN = Field.create("STARTSTOPBUTTONPIN", 810, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field MAPMINBUFFERLENGTH = Field.create("MAPMINBUFFERLENGTH", 812, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field IDLEPIDDEACTIVATIONTPSTHRESHOLD = Field.create("IDLEPIDDEACTIVATIONTPSTHRESHOLD", 816, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERPARKINGEXTRASTEPS = Field.create("STEPPERPARKINGEXTRASTEPS", 818, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPS1SECONDARYMIN = Field.create("TPS1SECONDARYMIN", 820, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPS1SECONDARYMAX = Field.create("TPS1SECONDARYMAX", 822, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ANTILAGRPMTRESHOLD = Field.create("ANTILAGRPMTRESHOLD", 824, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field STARTCRANKINGDURATION = Field.create("STARTCRANKINGDURATION", 826, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERERRORPIN = Field.create("TRIGGERERRORPIN", 828, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERERRORPINMODE = Field.create("TRIGGERERRORPINMODE", 830, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_831 = Field.create("ALIGNMENTFILL_AT_831", 831, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ACRELAYPIN = Field.create("ACRELAYPIN", 832, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field ACRELAYPINMODE = Field.create("ACRELAYPINMODE", 834, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_835 = Field.create("ALIGNMENTFILL_AT_835", 835, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING1 = Field.create("SCRIPTSETTING1", 836, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING2 = Field.create("SCRIPTSETTING2", 840, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING3 = Field.create("SCRIPTSETTING3", 844, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING4 = Field.create("SCRIPTSETTING4", 848, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING5 = Field.create("SCRIPTSETTING5", 852, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING6 = Field.create("SCRIPTSETTING6", 856, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING7 = Field.create("SCRIPTSETTING7", 860, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTING8 = Field.create("SCRIPTSETTING8", 864, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field SPI1MOSIPIN = Field.create("SPI1MOSIPIN", 868, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI1MISOPIN = Field.create("SPI1MISOPIN", 870, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI1SCKPIN = Field.create("SPI1SCKPIN", 872, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI2MOSIPIN = Field.create("SPI2MOSIPIN", 874, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI2MISOPIN = Field.create("SPI2MISOPIN", 876, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI2SCKPIN = Field.create("SPI2SCKPIN", 878, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI3MOSIPIN = Field.create("SPI3MOSIPIN", 880, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI3MISOPIN = Field.create("SPI3MISOPIN", 882, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field SPI3SCKPIN = Field.create("SPI3SCKPIN", 884, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CONSOLEUARTDEVICE = Field.create("CONSOLEUARTDEVICE", 886, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final String[] sensor_chart_e = {"none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1"}; - public static final Field SENSORCHARTMODE = Field.create("SENSORCHARTMODE", 955, FieldType.INT8, sensor_chart_e).setScale(1.0).setBaseOffset(0); + public static final Field SENSORCHARTMODE = Field.create("SENSORCHARTMODE", 887, FieldType.INT8, sensor_chart_e).setScale(1.0).setBaseOffset(0); public static final String[] maf_sensor_type_e = {"v0", "v1", "v2", "v3"}; - public static final Field MAFSENSORTYPE = Field.create("MAFSENSORTYPE", 956, FieldType.INT8, maf_sensor_type_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_957 = Field.create("ALIGNMENTFILL_AT_957", 957, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CLUTCHUPPININVERTED = Field.create("CLUTCHUPPININVERTED", 960, FieldType.BIT, 0).setBaseOffset(0); - public static final Field CLUTCHDOWNPININVERTED = Field.create("CLUTCHDOWNPININVERTED", 960, FieldType.BIT, 1).setBaseOffset(0); - public static final Field USEHBRIDGESTODRIVEIDLESTEPPER = Field.create("USEHBRIDGESTODRIVEIDLESTEPPER", 960, FieldType.BIT, 2).setBaseOffset(0); - public static final Field MULTISPARKENABLE = Field.create("MULTISPARKENABLE", 960, FieldType.BIT, 3).setBaseOffset(0); - public static final Field ENABLELAUNCHRETARD = Field.create("ENABLELAUNCHRETARD", 960, FieldType.BIT, 4).setBaseOffset(0); - public static final Field UNFINISHEDENABLELAUNCHBOOST = Field.create("UNFINISHEDENABLELAUNCHBOOST", 960, FieldType.BIT, 5).setBaseOffset(0); - public static final Field UNFINISHEDLAUNCHDISABLEBYSPEED = Field.create("UNFINISHEDLAUNCHDISABLEBYSPEED", 960, FieldType.BIT, 6).setBaseOffset(0); - public static final Field ENABLECANVSS = Field.create("ENABLECANVSS", 960, FieldType.BIT, 7).setBaseOffset(0); - public static final Field ENABLEINNOVATELC2 = Field.create("ENABLEINNOVATELC2", 960, FieldType.BIT, 8).setBaseOffset(0); - public static final Field SHOWHUMANREADABLEWARNING = Field.create("SHOWHUMANREADABLEWARNING", 960, FieldType.BIT, 9).setBaseOffset(0); - public static final Field STFTIGNOREERRORMAGNITUDE = Field.create("STFTIGNOREERRORMAGNITUDE", 960, FieldType.BIT, 10).setBaseOffset(0); - public static final Field VVTBOOLEANFORVERYSPECIALCASES = Field.create("VVTBOOLEANFORVERYSPECIALCASES", 960, FieldType.BIT, 11).setBaseOffset(0); - public static final Field ENABLESOFTWAREKNOCK = Field.create("ENABLESOFTWAREKNOCK", 960, FieldType.BIT, 12).setBaseOffset(0); - public static final Field VERBOSEVVTDECODING = Field.create("VERBOSEVVTDECODING", 960, FieldType.BIT, 13).setBaseOffset(0); - public static final Field INVERTCAMVVTSIGNAL = Field.create("INVERTCAMVVTSIGNAL", 960, FieldType.BIT, 14).setBaseOffset(0); - public static final Field CONSUMEOBDSENSORS = Field.create("CONSUMEOBDSENSORS", 960, FieldType.BIT, 15).setBaseOffset(0); - public static final Field KNOCKBANKCYL1 = Field.create("KNOCKBANKCYL1", 960, FieldType.BIT, 16).setBaseOffset(0); - public static final Field KNOCKBANKCYL2 = Field.create("KNOCKBANKCYL2", 960, FieldType.BIT, 17).setBaseOffset(0); - public static final Field KNOCKBANKCYL3 = Field.create("KNOCKBANKCYL3", 960, FieldType.BIT, 18).setBaseOffset(0); - public static final Field KNOCKBANKCYL4 = Field.create("KNOCKBANKCYL4", 960, FieldType.BIT, 19).setBaseOffset(0); - public static final Field KNOCKBANKCYL5 = Field.create("KNOCKBANKCYL5", 960, FieldType.BIT, 20).setBaseOffset(0); - public static final Field KNOCKBANKCYL6 = Field.create("KNOCKBANKCYL6", 960, FieldType.BIT, 21).setBaseOffset(0); - public static final Field KNOCKBANKCYL7 = Field.create("KNOCKBANKCYL7", 960, FieldType.BIT, 22).setBaseOffset(0); - public static final Field KNOCKBANKCYL8 = Field.create("KNOCKBANKCYL8", 960, FieldType.BIT, 23).setBaseOffset(0); - public static final Field KNOCKBANKCYL9 = Field.create("KNOCKBANKCYL9", 960, FieldType.BIT, 24).setBaseOffset(0); - public static final Field KNOCKBANKCYL10 = Field.create("KNOCKBANKCYL10", 960, FieldType.BIT, 25).setBaseOffset(0); - public static final Field KNOCKBANKCYL11 = Field.create("KNOCKBANKCYL11", 960, FieldType.BIT, 26).setBaseOffset(0); - public static final Field KNOCKBANKCYL12 = Field.create("KNOCKBANKCYL12", 960, FieldType.BIT, 27).setBaseOffset(0); - public static final Field TCUENABLED = Field.create("TCUENABLED", 960, FieldType.BIT, 28).setBaseOffset(0); - public static final Field CANBROADCASTUSECHANNELTWO = Field.create("CANBROADCASTUSECHANNELTWO", 960, FieldType.BIT, 29).setBaseOffset(0); - public static final Field USERAWOUTPUTTODRIVEIDLESTEPPER = Field.create("USERAWOUTPUTTODRIVEIDLESTEPPER", 960, FieldType.BIT, 30).setBaseOffset(0); - public static final Field VERBOSECAN2 = Field.create("VERBOSECAN2", 960, FieldType.BIT, 31).setBaseOffset(0); - public static final Field ETBIO1_DIRECTIONPIN1 = Field.create("ETBIO1_DIRECTIONPIN1", 964, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO1_DIRECTIONPIN2 = Field.create("ETBIO1_DIRECTIONPIN2", 966, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO1_CONTROLPIN = Field.create("ETBIO1_CONTROLPIN", 968, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO1_DISABLEPIN = Field.create("ETBIO1_DISABLEPIN", 970, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO2_DIRECTIONPIN1 = Field.create("ETBIO2_DIRECTIONPIN1", 972, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO2_DIRECTIONPIN2 = Field.create("ETBIO2_DIRECTIONPIN2", 974, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO2_CONTROLPIN = Field.create("ETBIO2_CONTROLPIN", 976, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ETBIO2_DISABLEPIN = Field.create("ETBIO2_DISABLEPIN", 978, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCONTROLPIN = Field.create("BOOSTCONTROLPIN", 980, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCONTROLPINMODE = Field.create("BOOSTCONTROLPINMODE", 982, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_983 = Field.create("ALIGNMENTFILL_AT_983", 983, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALSACTIVATEPIN = Field.create("ALSACTIVATEPIN", 984, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHACTIVATEPIN = Field.create("LAUNCHACTIVATEPIN", 986, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTPID_PFACTOR = Field.create("BOOSTPID_PFACTOR", 988, FieldType.FLOAT).setBaseOffset(0); - public static final Field BOOSTPID_IFACTOR = Field.create("BOOSTPID_IFACTOR", 992, FieldType.FLOAT).setBaseOffset(0); - public static final Field BOOSTPID_DFACTOR = Field.create("BOOSTPID_DFACTOR", 996, FieldType.FLOAT).setBaseOffset(0); - public static final Field BOOSTPID_OFFSET = Field.create("BOOSTPID_OFFSET", 1000, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTPID_PERIODMS = Field.create("BOOSTPID_PERIODMS", 1002, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTPID_MINVALUE = Field.create("BOOSTPID_MINVALUE", 1004, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTPID_MAXVALUE = Field.create("BOOSTPID_MAXVALUE", 1006, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTTYPE = Field.create("BOOSTTYPE", 1008, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1009 = Field.create("ALIGNMENTFILL_AT_1009", 1009, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTPWMFREQUENCY = Field.create("BOOSTPWMFREQUENCY", 1012, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field MAFSENSORTYPE = Field.create("MAFSENSORTYPE", 888, FieldType.INT8, maf_sensor_type_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_889 = Field.create("ALIGNMENTFILL_AT_889", 889, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CLUTCHUPPININVERTED = Field.create("CLUTCHUPPININVERTED", 892, FieldType.BIT, 0).setBaseOffset(0); + public static final Field CLUTCHDOWNPININVERTED = Field.create("CLUTCHDOWNPININVERTED", 892, FieldType.BIT, 1).setBaseOffset(0); + public static final Field USEHBRIDGESTODRIVEIDLESTEPPER = Field.create("USEHBRIDGESTODRIVEIDLESTEPPER", 892, FieldType.BIT, 2).setBaseOffset(0); + public static final Field MULTISPARKENABLE = Field.create("MULTISPARKENABLE", 892, FieldType.BIT, 3).setBaseOffset(0); + public static final Field ENABLELAUNCHRETARD = Field.create("ENABLELAUNCHRETARD", 892, FieldType.BIT, 4).setBaseOffset(0); + public static final Field ENABLECANVSS = Field.create("ENABLECANVSS", 892, FieldType.BIT, 5).setBaseOffset(0); + public static final Field ENABLEINNOVATELC2 = Field.create("ENABLEINNOVATELC2", 892, FieldType.BIT, 6).setBaseOffset(0); + public static final Field SHOWHUMANREADABLEWARNING = Field.create("SHOWHUMANREADABLEWARNING", 892, FieldType.BIT, 7).setBaseOffset(0); + public static final Field STFTIGNOREERRORMAGNITUDE = Field.create("STFTIGNOREERRORMAGNITUDE", 892, FieldType.BIT, 8).setBaseOffset(0); + public static final Field VVTBOOLEANFORVERYSPECIALCASES = Field.create("VVTBOOLEANFORVERYSPECIALCASES", 892, FieldType.BIT, 9).setBaseOffset(0); + public static final Field ENABLESOFTWAREKNOCK = Field.create("ENABLESOFTWAREKNOCK", 892, FieldType.BIT, 10).setBaseOffset(0); + public static final Field VERBOSEVVTDECODING = Field.create("VERBOSEVVTDECODING", 892, FieldType.BIT, 11).setBaseOffset(0); + public static final Field INVERTCAMVVTSIGNAL = Field.create("INVERTCAMVVTSIGNAL", 892, FieldType.BIT, 12).setBaseOffset(0); + public static final Field CONSUMEOBDSENSORS = Field.create("CONSUMEOBDSENSORS", 892, FieldType.BIT, 13).setBaseOffset(0); + public static final Field KNOCKBANKCYL1 = Field.create("KNOCKBANKCYL1", 892, FieldType.BIT, 14).setBaseOffset(0); + public static final Field KNOCKBANKCYL2 = Field.create("KNOCKBANKCYL2", 892, FieldType.BIT, 15).setBaseOffset(0); + public static final Field KNOCKBANKCYL3 = Field.create("KNOCKBANKCYL3", 892, FieldType.BIT, 16).setBaseOffset(0); + public static final Field KNOCKBANKCYL4 = Field.create("KNOCKBANKCYL4", 892, FieldType.BIT, 17).setBaseOffset(0); + public static final Field KNOCKBANKCYL5 = Field.create("KNOCKBANKCYL5", 892, FieldType.BIT, 18).setBaseOffset(0); + public static final Field KNOCKBANKCYL6 = Field.create("KNOCKBANKCYL6", 892, FieldType.BIT, 19).setBaseOffset(0); + public static final Field KNOCKBANKCYL7 = Field.create("KNOCKBANKCYL7", 892, FieldType.BIT, 20).setBaseOffset(0); + public static final Field KNOCKBANKCYL8 = Field.create("KNOCKBANKCYL8", 892, FieldType.BIT, 21).setBaseOffset(0); + public static final Field KNOCKBANKCYL9 = Field.create("KNOCKBANKCYL9", 892, FieldType.BIT, 22).setBaseOffset(0); + public static final Field KNOCKBANKCYL10 = Field.create("KNOCKBANKCYL10", 892, FieldType.BIT, 23).setBaseOffset(0); + public static final Field KNOCKBANKCYL11 = Field.create("KNOCKBANKCYL11", 892, FieldType.BIT, 24).setBaseOffset(0); + public static final Field KNOCKBANKCYL12 = Field.create("KNOCKBANKCYL12", 892, FieldType.BIT, 25).setBaseOffset(0); + public static final Field TCUENABLED = Field.create("TCUENABLED", 892, FieldType.BIT, 26).setBaseOffset(0); + public static final Field CANBROADCASTUSECHANNELTWO = Field.create("CANBROADCASTUSECHANNELTWO", 892, FieldType.BIT, 27).setBaseOffset(0); + public static final Field USERAWOUTPUTTODRIVEIDLESTEPPER = Field.create("USERAWOUTPUTTODRIVEIDLESTEPPER", 892, FieldType.BIT, 28).setBaseOffset(0); + public static final Field VERBOSECAN2 = Field.create("VERBOSECAN2", 892, FieldType.BIT, 29).setBaseOffset(0); + public static final Field ETBIO1_DIRECTIONPIN1 = Field.create("ETBIO1_DIRECTIONPIN1", 896, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO1_DIRECTIONPIN2 = Field.create("ETBIO1_DIRECTIONPIN2", 898, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO1_CONTROLPIN = Field.create("ETBIO1_CONTROLPIN", 900, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO1_DISABLEPIN = Field.create("ETBIO1_DISABLEPIN", 902, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO2_DIRECTIONPIN1 = Field.create("ETBIO2_DIRECTIONPIN1", 904, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO2_DIRECTIONPIN2 = Field.create("ETBIO2_DIRECTIONPIN2", 906, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO2_CONTROLPIN = Field.create("ETBIO2_CONTROLPIN", 908, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ETBIO2_DISABLEPIN = Field.create("ETBIO2_DISABLEPIN", 910, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCONTROLPIN = Field.create("BOOSTCONTROLPIN", 912, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCONTROLPINMODE = Field.create("BOOSTCONTROLPINMODE", 914, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_915 = Field.create("ALIGNMENTFILL_AT_915", 915, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALSACTIVATEPIN = Field.create("ALSACTIVATEPIN", 916, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHACTIVATEPIN = Field.create("LAUNCHACTIVATEPIN", 918, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTPID_PFACTOR = Field.create("BOOSTPID_PFACTOR", 920, FieldType.FLOAT).setBaseOffset(0); + public static final Field BOOSTPID_IFACTOR = Field.create("BOOSTPID_IFACTOR", 924, FieldType.FLOAT).setBaseOffset(0); + public static final Field BOOSTPID_DFACTOR = Field.create("BOOSTPID_DFACTOR", 928, FieldType.FLOAT).setBaseOffset(0); + public static final Field BOOSTPID_OFFSET = Field.create("BOOSTPID_OFFSET", 932, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTPID_PERIODMS = Field.create("BOOSTPID_PERIODMS", 934, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTPID_MINVALUE = Field.create("BOOSTPID_MINVALUE", 936, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTPID_MAXVALUE = Field.create("BOOSTPID_MAXVALUE", 938, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTTYPE = Field.create("BOOSTTYPE", 940, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_941 = Field.create("ALIGNMENTFILL_AT_941", 941, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTPWMFREQUENCY = Field.create("BOOSTPWMFREQUENCY", 944, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final String[] launchActivationMode_e = {"Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)"}; - public static final Field LAUNCHACTIVATIONMODE = Field.create("LAUNCHACTIVATIONMODE", 1016, FieldType.INT8, launchActivationMode_e).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHACTIVATIONMODE = Field.create("LAUNCHACTIVATIONMODE", 948, FieldType.INT8, launchActivationMode_e).setScale(1.0).setBaseOffset(0); public static final String[] antiLagActivationMode_e = {"Switch Input", "Always Active"}; - public static final Field ANTILAGACTIVATIONMODE = Field.create("ANTILAGACTIVATIONMODE", 1017, FieldType.INT8, antiLagActivationMode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1018 = Field.create("ALIGNMENTFILL_AT_1018", 1018, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHSPEEDTHRESHOLD = Field.create("LAUNCHSPEEDTHRESHOLD", 1020, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHTIMINGRPMRANGE = Field.create("LAUNCHTIMINGRPMRANGE", 1024, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHFUELADDED = Field.create("LAUNCHFUELADDED", 1028, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHBOOSTDUTY = Field.create("LAUNCHBOOSTDUTY", 1032, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field HARDCUTRPMRANGE = Field.create("HARDCUTRPMRANGE", 1036, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TURBOCHARGERFILTER = Field.create("TURBOCHARGERFILTER", 1040, FieldType.FLOAT).setBaseOffset(0); - public static final Field LAUNCHTPSTHRESHOLD = Field.create("LAUNCHTPSTHRESHOLD", 1044, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHACTIVATEDELAY = Field.create("LAUNCHACTIVATEDELAY", 1048, FieldType.FLOAT).setBaseOffset(0); - public static final Field STFT_MAXIDLEREGIONRPM = Field.create("STFT_MAXIDLEREGIONRPM", 1052, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field STFT_MAXOVERRUNLOAD = Field.create("STFT_MAXOVERRUNLOAD", 1053, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_MINPOWERLOAD = Field.create("STFT_MINPOWERLOAD", 1054, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_DEADBAND = Field.create("STFT_DEADBAND", 1055, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field STFT_MINCLT = Field.create("STFT_MINCLT", 1056, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_MINAFR = Field.create("STFT_MINAFR", 1057, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field STFT_MAXAFR = Field.create("STFT_MAXAFR", 1058, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field STFT_STARTUPDELAY = Field.create("STFT_STARTUPDELAY", 1059, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS1_MAXADD = Field.create("STFT_CELLCFGS1_MAXADD", 1060, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS1_MAXREMOVE = Field.create("STFT_CELLCFGS1_MAXREMOVE", 1061, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS1_TIMECONSTANT = Field.create("STFT_CELLCFGS1_TIMECONSTANT", 1062, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field STFT_CELLCFGS2_MAXADD = Field.create("STFT_CELLCFGS2_MAXADD", 1064, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS2_MAXREMOVE = Field.create("STFT_CELLCFGS2_MAXREMOVE", 1065, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS2_TIMECONSTANT = Field.create("STFT_CELLCFGS2_TIMECONSTANT", 1066, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field STFT_CELLCFGS3_MAXADD = Field.create("STFT_CELLCFGS3_MAXADD", 1068, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS3_MAXREMOVE = Field.create("STFT_CELLCFGS3_MAXREMOVE", 1069, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS3_TIMECONSTANT = Field.create("STFT_CELLCFGS3_TIMECONSTANT", 1070, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field STFT_CELLCFGS4_MAXADD = Field.create("STFT_CELLCFGS4_MAXADD", 1072, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS4_MAXREMOVE = Field.create("STFT_CELLCFGS4_MAXREMOVE", 1073, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STFT_CELLCFGS4_TIMECONSTANT = Field.create("STFT_CELLCFGS4_TIMECONSTANT", 1074, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field STEPPERDCIO1_DIRECTIONPIN1 = Field.create("STEPPERDCIO1_DIRECTIONPIN1", 1076, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO1_DIRECTIONPIN2 = Field.create("STEPPERDCIO1_DIRECTIONPIN2", 1078, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO1_CONTROLPIN = Field.create("STEPPERDCIO1_CONTROLPIN", 1080, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO1_DISABLEPIN = Field.create("STEPPERDCIO1_DISABLEPIN", 1082, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO2_DIRECTIONPIN1 = Field.create("STEPPERDCIO2_DIRECTIONPIN1", 1084, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO2_DIRECTIONPIN2 = Field.create("STEPPERDCIO2_DIRECTIONPIN2", 1086, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO2_CONTROLPIN = Field.create("STEPPERDCIO2_CONTROLPIN", 1088, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCIO2_DISABLEPIN = Field.create("STEPPERDCIO2_DISABLEPIN", 1090, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ENGINEMAKE = Field.create("ENGINEMAKE", 1092, 32, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field ENGINECODE = Field.create("ENGINECODE", 1124, 32, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field VEHICLENAME = Field.create("VEHICLENAME", 1156, 32, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID1 = Field.create("TCU_SOLENOID1", 1188, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID2 = Field.create("TCU_SOLENOID2", 1190, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID3 = Field.create("TCU_SOLENOID3", 1192, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID4 = Field.create("TCU_SOLENOID4", 1194, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID5 = Field.create("TCU_SOLENOID5", 1196, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID6 = Field.create("TCU_SOLENOID6", 1198, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ETBFUNCTIONS1 = Field.create("ETBFUNCTIONS1", 1200, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ETBFUNCTIONS2 = Field.create("ETBFUNCTIONS2", 1201, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DRV8860SPIDEVICE = Field.create("DRV8860SPIDEVICE", 1202, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1203 = Field.create("ALIGNMENTFILL_AT_1203", 1203, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DRV8860_CS = Field.create("DRV8860_CS", 1204, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field DRV8860_CSPINMODE = Field.create("DRV8860_CSPINMODE", 1206, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1207 = Field.create("ALIGNMENTFILL_AT_1207", 1207, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field DRV8860_MISO = Field.create("DRV8860_MISO", 1208, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field FUELLEVELBINS = Field.create("FUELLEVELBINS", 1210, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field LUAOUTPUTPINS1 = Field.create("LUAOUTPUTPINS1", 1226, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS2 = Field.create("LUAOUTPUTPINS2", 1228, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS3 = Field.create("LUAOUTPUTPINS3", 1230, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS4 = Field.create("LUAOUTPUTPINS4", 1232, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS5 = Field.create("LUAOUTPUTPINS5", 1234, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS6 = Field.create("LUAOUTPUTPINS6", 1236, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS7 = Field.create("LUAOUTPUTPINS7", 1238, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LUAOUTPUTPINS8 = Field.create("LUAOUTPUTPINS8", 1240, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1242 = Field.create("ALIGNMENTFILL_AT_1242", 1242, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VVTOFFSETS1 = Field.create("VVTOFFSETS1", 1244, FieldType.FLOAT).setBaseOffset(0); - public static final Field VVTOFFSETS2 = Field.create("VVTOFFSETS2", 1248, FieldType.FLOAT).setBaseOffset(0); - public static final Field VVTOFFSETS3 = Field.create("VVTOFFSETS3", 1252, FieldType.FLOAT).setBaseOffset(0); - public static final Field VVTOFFSETS4 = Field.create("VVTOFFSETS4", 1256, FieldType.FLOAT).setBaseOffset(0); - public static final Field VRTHRESHOLD1_RPMBINS = Field.create("VRTHRESHOLD1_RPMBINS", 1260, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field VRTHRESHOLD1_VALUES = Field.create("VRTHRESHOLD1_VALUES", 1266, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field VRTHRESHOLD1_PIN = Field.create("VRTHRESHOLD1_PIN", 1272, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field VRTHRESHOLD1_ALIGNMENTFILL_AT_14 = Field.create("VRTHRESHOLD1_ALIGNMENTFILL_AT_14", 1274, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VRTHRESHOLD2_RPMBINS = Field.create("VRTHRESHOLD2_RPMBINS", 1276, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field VRTHRESHOLD2_VALUES = Field.create("VRTHRESHOLD2_VALUES", 1282, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field VRTHRESHOLD2_PIN = Field.create("VRTHRESHOLD2_PIN", 1288, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field VRTHRESHOLD2_ALIGNMENTFILL_AT_14 = Field.create("VRTHRESHOLD2_ALIGNMENTFILL_AT_14", 1290, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWMNOTE1 = Field.create("GPPWMNOTE1", 1292, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field GPPWMNOTE2 = Field.create("GPPWMNOTE2", 1308, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field GPPWMNOTE3 = Field.create("GPPWMNOTE3", 1324, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field GPPWMNOTE4 = Field.create("GPPWMNOTE4", 1340, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field TPS2SECONDARYMIN = Field.create("TPS2SECONDARYMIN", 1356, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPS2SECONDARYMAX = Field.create("TPS2SECONDARYMAX", 1358, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field WIDEBANDONSECONDBUS = Field.create("WIDEBANDONSECONDBUS", 1360, FieldType.BIT, 0).setBaseOffset(0); - public static final Field FUELCLOSEDLOOPCORRECTIONENABLED = Field.create("FUELCLOSEDLOOPCORRECTIONENABLED", 1360, FieldType.BIT, 1).setBaseOffset(0); - public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 1360, FieldType.BIT, 2).setBaseOffset(0); - public static final Field BOARDUSETACHPULLUP = Field.create("BOARDUSETACHPULLUP", 1360, FieldType.BIT, 3).setBaseOffset(0); - public static final Field BOARDUSETEMPPULLUP = Field.create("BOARDUSETEMPPULLUP", 1360, FieldType.BIT, 4).setBaseOffset(0); - public static final Field YESUNDERSTANDLOCKING = Field.create("YESUNDERSTANDLOCKING", 1360, FieldType.BIT, 5).setBaseOffset(0); - public static final Field SILENTTRIGGERERROR = Field.create("SILENTTRIGGERERROR", 1360, FieldType.BIT, 6).setBaseOffset(0); - public static final Field USELINEARCLTSENSOR = Field.create("USELINEARCLTSENSOR", 1360, FieldType.BIT, 7).setBaseOffset(0); - public static final Field CANREADENABLED = Field.create("CANREADENABLED", 1360, FieldType.BIT, 8).setBaseOffset(0); - public static final Field CANWRITEENABLED = Field.create("CANWRITEENABLED", 1360, FieldType.BIT, 9).setBaseOffset(0); - public static final Field USELINEARIATSENSOR = Field.create("USELINEARIATSENSOR", 1360, FieldType.BIT, 10).setBaseOffset(0); - public static final Field BOARDUSE2STEPPULLDOWN = Field.create("BOARDUSE2STEPPULLDOWN", 1360, FieldType.BIT, 11).setBaseOffset(0); - public static final Field TACHPULSEDURATIONASDUTYCYCLE = Field.create("TACHPULSEDURATIONASDUTYCYCLE", 1360, FieldType.BIT, 12).setBaseOffset(0); - public static final Field ISALTERNATORCONTROLENABLED = Field.create("ISALTERNATORCONTROLENABLED", 1360, FieldType.BIT, 13).setBaseOffset(0); - public static final Field INVERTPRIMARYTRIGGERSIGNAL = Field.create("INVERTPRIMARYTRIGGERSIGNAL", 1360, FieldType.BIT, 14).setBaseOffset(0); - public static final Field INVERTSECONDARYTRIGGERSIGNAL = Field.create("INVERTSECONDARYTRIGGERSIGNAL", 1360, FieldType.BIT, 15).setBaseOffset(0); - public static final Field CUTFUELONHARDLIMIT = Field.create("CUTFUELONHARDLIMIT", 1360, FieldType.BIT, 16).setBaseOffset(0); - public static final Field CUTSPARKONHARDLIMIT = Field.create("CUTSPARKONHARDLIMIT", 1360, FieldType.BIT, 17).setBaseOffset(0); - public static final Field LAUNCHFUELCUTENABLE = Field.create("LAUNCHFUELCUTENABLE", 1360, FieldType.BIT, 18).setBaseOffset(0); - public static final Field LAUNCHSPARKCUTENABLE = Field.create("LAUNCHSPARKCUTENABLE", 1360, FieldType.BIT, 19).setBaseOffset(0); - public static final Field BOARDUSECRANKPULLUP = Field.create("BOARDUSECRANKPULLUP", 1360, FieldType.BIT, 20).setBaseOffset(0); - public static final Field BOARDUSECAMPULLDOWN = Field.create("BOARDUSECAMPULLDOWN", 1360, FieldType.BIT, 21).setBaseOffset(0); - public static final Field BOARDUSECAMVRPULLUP = Field.create("BOARDUSECAMVRPULLUP", 1360, FieldType.BIT, 22).setBaseOffset(0); - public static final Field BOARDUSED2PULLDOWN = Field.create("BOARDUSED2PULLDOWN", 1360, FieldType.BIT, 23).setBaseOffset(0); - public static final Field BOARDUSED3PULLDOWN = Field.create("BOARDUSED3PULLDOWN", 1360, FieldType.BIT, 24).setBaseOffset(0); - public static final Field BOARDUSED4PULLDOWN = Field.create("BOARDUSED4PULLDOWN", 1360, FieldType.BIT, 25).setBaseOffset(0); - public static final Field BOARDUSED5PULLDOWN = Field.create("BOARDUSED5PULLDOWN", 1360, FieldType.BIT, 26).setBaseOffset(0); - public static final Field VERBOSEISOTP = Field.create("VERBOSEISOTP", 1360, FieldType.BIT, 27).setBaseOffset(0); - public static final Field ENGINESNIFFERFOCUSONINPUTS = Field.create("ENGINESNIFFERFOCUSONINPUTS", 1360, FieldType.BIT, 28).setBaseOffset(0); - public static final Field LAUNCHACTIVATEINVERTED = Field.create("LAUNCHACTIVATEINVERTED", 1360, FieldType.BIT, 29).setBaseOffset(0); - public static final Field TWOSTROKE = Field.create("TWOSTROKE", 1360, FieldType.BIT, 30).setBaseOffset(0); - public static final Field SKIPPEDWHEELONCAM = Field.create("SKIPPEDWHEELONCAM", 1360, FieldType.BIT, 31).setBaseOffset(0); - public static final Field HIPOUTPUTCHANNEL = Field.create("HIPOUTPUTCHANNEL", 1364, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1365 = Field.create("ALIGNMENTFILL_AT_1365", 1365, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ACSWITCH = Field.create("ACSWITCH", 1366, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field VREFADCCHANNEL = Field.create("VREFADCCHANNEL", 1368, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field ETBNEUTRALPOSITION = Field.create("ETBNEUTRALPOSITION", 1369, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IDLEMODE = Field.create("IDLEMODE", 1370, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1371 = Field.create("ALIGNMENTFILL_AT_1371", 1371, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ISINJECTIONENABLED = Field.create("ISINJECTIONENABLED", 1372, FieldType.BIT, 0).setBaseOffset(0); - public static final Field ISIGNITIONENABLED = Field.create("ISIGNITIONENABLED", 1372, FieldType.BIT, 1).setBaseOffset(0); - public static final Field ISCYLINDERCLEANUPENABLED = Field.create("ISCYLINDERCLEANUPENABLED", 1372, FieldType.BIT, 2).setBaseOffset(0); - public static final Field COMPLEXWALLMODEL = Field.create("COMPLEXWALLMODEL", 1372, FieldType.BIT, 3).setBaseOffset(0); - public static final Field ALWAYSINSTANTRPM = Field.create("ALWAYSINSTANTRPM", 1372, FieldType.BIT, 4).setBaseOffset(0); - public static final Field ISMAPAVERAGINGENABLED = Field.create("ISMAPAVERAGINGENABLED", 1372, FieldType.BIT, 5).setBaseOffset(0); - public static final Field OVERRIDECRANKINGIACSETTING = Field.create("OVERRIDECRANKINGIACSETTING", 1372, FieldType.BIT, 6).setBaseOffset(0); - public static final Field USESEPARATEADVANCEFORIDLE = Field.create("USESEPARATEADVANCEFORIDLE", 1372, FieldType.BIT, 7).setBaseOffset(0); - public static final Field ISWAVEANALYZERENABLED = Field.create("ISWAVEANALYZERENABLED", 1372, FieldType.BIT, 8).setBaseOffset(0); - public static final Field USESEPARATEVEFORIDLE = Field.create("USESEPARATEVEFORIDLE", 1372, FieldType.BIT, 9).setBaseOffset(0); - public static final Field VERBOSETRIGGERSYNCHDETAILS = Field.create("VERBOSETRIGGERSYNCHDETAILS", 1372, FieldType.BIT, 10).setBaseOffset(0); - public static final Field ISMANUALSPINNINGMODE = Field.create("ISMANUALSPINNINGMODE", 1372, FieldType.BIT, 11).setBaseOffset(0); - public static final Field TWOWIREBATCHINJECTION = Field.create("TWOWIREBATCHINJECTION", 1372, FieldType.BIT, 12).setBaseOffset(0); - public static final Field NEVERINSTANTRPM = Field.create("NEVERINSTANTRPM", 1372, FieldType.BIT, 13).setBaseOffset(0); - public static final Field TWOWIREBATCHIGNITION = Field.create("TWOWIREBATCHIGNITION", 1372, FieldType.BIT, 14).setBaseOffset(0); - public static final Field USEFIXEDBAROCORRFROMMAP = Field.create("USEFIXEDBAROCORRFROMMAP", 1372, FieldType.BIT, 15).setBaseOffset(0); - public static final Field USESEPARATEADVANCEFORCRANKING = Field.create("USESEPARATEADVANCEFORCRANKING", 1372, FieldType.BIT, 16).setBaseOffset(0); - public static final Field USEADVANCECORRECTIONSFORCRANKING = Field.create("USEADVANCECORRECTIONSFORCRANKING", 1372, FieldType.BIT, 17).setBaseOffset(0); - public static final Field FLEXCRANKING = Field.create("FLEXCRANKING", 1372, FieldType.BIT, 18).setBaseOffset(0); - public static final Field USEIACPIDMULTTABLE = Field.create("USEIACPIDMULTTABLE", 1372, FieldType.BIT, 19).setBaseOffset(0); - public static final Field ISBOOSTCONTROLENABLED = Field.create("ISBOOSTCONTROLENABLED", 1372, FieldType.BIT, 20).setBaseOffset(0); - public static final Field LAUNCHSMOOTHRETARD = Field.create("LAUNCHSMOOTHRETARD", 1372, FieldType.BIT, 21).setBaseOffset(0); - public static final Field ISPHASESYNCREQUIREDFORIGNITION = Field.create("ISPHASESYNCREQUIREDFORIGNITION", 1372, FieldType.BIT, 22).setBaseOffset(0); - public static final Field USECLTBASEDRPMLIMIT = Field.create("USECLTBASEDRPMLIMIT", 1372, FieldType.BIT, 23).setBaseOffset(0); - public static final Field FORCEO2HEATING = Field.create("FORCEO2HEATING", 1372, FieldType.BIT, 24).setBaseOffset(0); - public static final Field INVERTVVTCONTROLINTAKE = Field.create("INVERTVVTCONTROLINTAKE", 1372, FieldType.BIT, 25).setBaseOffset(0); - public static final Field INVERTVVTCONTROLEXHAUST = Field.create("INVERTVVTCONTROLEXHAUST", 1372, FieldType.BIT, 26).setBaseOffset(0); - public static final Field USEBIQUADONAUXSPEEDSENSORS = Field.create("USEBIQUADONAUXSPEEDSENSORS", 1372, FieldType.BIT, 27).setBaseOffset(0); - public static final Field SDTRIGGERLOG = Field.create("SDTRIGGERLOG", 1372, FieldType.BIT, 28).setBaseOffset(0); - public static final Field ALSACTIVATEINVERTED = Field.create("ALSACTIVATEINVERTED", 1372, FieldType.BIT, 29).setBaseOffset(0); - public static final Field TEMPBOOLEANFORVERYSPECIALLOGIC = Field.create("TEMPBOOLEANFORVERYSPECIALLOGIC", 1372, FieldType.BIT, 31).setBaseOffset(0); - public static final Field ENGINECHARTSIZE = Field.create("ENGINECHARTSIZE", 1376, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TURBOSPEEDSENSORMULTIPLIER = Field.create("TURBOSPEEDSENSORMULTIPLIER", 1380, FieldType.FLOAT).setBaseOffset(0); - public static final Field CAMINPUTSDEBUG1 = Field.create("CAMINPUTSDEBUG1", 1384, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CAMINPUTSDEBUG2 = Field.create("CAMINPUTSDEBUG2", 1386, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CAMINPUTSDEBUG3 = Field.create("CAMINPUTSDEBUG3", 1388, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CAMINPUTSDEBUG4 = Field.create("CAMINPUTSDEBUG4", 1390, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ACIDLERPMBUMP = Field.create("ACIDLERPMBUMP", 1392, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field WARNINGPERIOD = Field.create("WARNINGPERIOD", 1394, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field KNOCKDETECTIONWINDOWSTART = Field.create("KNOCKDETECTIONWINDOWSTART", 1396, FieldType.FLOAT).setBaseOffset(0); - public static final Field KNOCKDETECTIONWINDOWEND = Field.create("KNOCKDETECTIONWINDOWEND", 1400, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLESTEPPERREACTIONTIME = Field.create("IDLESTEPPERREACTIONTIME", 1404, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLESTEPPERTOTALSTEPS = Field.create("IDLESTEPPERTOTALSTEPS", 1408, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field NOACCELAFTERHARDLIMITPERIODSECS = Field.create("NOACCELAFTERHARDLIMITPERIODSECS", 1412, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAPAVERAGINGSCHEDULINGATINDEX = Field.create("MAPAVERAGINGSCHEDULINGATINDEX", 1416, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TACHPULSEDURACTIONMS = Field.create("TACHPULSEDURACTIONMS", 1420, FieldType.FLOAT).setBaseOffset(0); - public static final Field WWAETAU = Field.create("WWAETAU", 1424, FieldType.FLOAT).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_PFACTOR = Field.create("ALTERNATORCONTROL_PFACTOR", 1428, FieldType.FLOAT).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_IFACTOR = Field.create("ALTERNATORCONTROL_IFACTOR", 1432, FieldType.FLOAT).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_DFACTOR = Field.create("ALTERNATORCONTROL_DFACTOR", 1436, FieldType.FLOAT).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_OFFSET = Field.create("ALTERNATORCONTROL_OFFSET", 1440, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_PERIODMS = Field.create("ALTERNATORCONTROL_PERIODMS", 1442, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_MINVALUE = Field.create("ALTERNATORCONTROL_MINVALUE", 1444, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALTERNATORCONTROL_MAXVALUE = Field.create("ALTERNATORCONTROL_MAXVALUE", 1446, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETB_PFACTOR = Field.create("ETB_PFACTOR", 1448, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETB_IFACTOR = Field.create("ETB_IFACTOR", 1452, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETB_DFACTOR = Field.create("ETB_DFACTOR", 1456, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETB_OFFSET = Field.create("ETB_OFFSET", 1460, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETB_PERIODMS = Field.create("ETB_PERIODMS", 1462, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETB_MINVALUE = Field.create("ETB_MINVALUE", 1464, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETB_MAXVALUE = Field.create("ETB_MAXVALUE", 1466, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERINPUTDEBUGPINS1 = Field.create("TRIGGERINPUTDEBUGPINS1", 1468, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERINPUTDEBUGPINS2 = Field.create("TRIGGERINPUTDEBUGPINS2", 1470, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field AIRTAPERRPMRANGE = Field.create("AIRTAPERRPMRANGE", 1472, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TURBOSPEEDSENSORINPUTPIN = Field.create("TURBOSPEEDSENSORINPUTPIN", 1474, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TPS2MIN = Field.create("TPS2MIN", 1476, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPS2MAX = Field.create("TPS2MAX", 1478, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field STARTERCONTROLPIN = Field.create("STARTERCONTROLPIN", 1480, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field STARTSTOPBUTTONMODE = Field.create("STARTSTOPBUTTONMODE", 1482, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1483 = Field.create("ALIGNMENTFILL_AT_1483", 1483, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MC33816_FLAG0 = Field.create("MC33816_FLAG0", 1484, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TACHPULSEPERREV = Field.create("TACHPULSEPERREV", 1486, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1487 = Field.create("ALIGNMENTFILL_AT_1487", 1487, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAPERRORDETECTIONTOOLOW = Field.create("MAPERRORDETECTIONTOOLOW", 1488, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAPERRORDETECTIONTOOHIGH = Field.create("MAPERRORDETECTIONTOOHIGH", 1492, FieldType.FLOAT).setBaseOffset(0); - public static final Field MULTISPARKSPARKDURATION = Field.create("MULTISPARKSPARKDURATION", 1496, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field MULTISPARKDWELL = Field.create("MULTISPARKDWELL", 1498, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field IDLERPMPID_PFACTOR = Field.create("IDLERPMPID_PFACTOR", 1500, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLERPMPID_IFACTOR = Field.create("IDLERPMPID_IFACTOR", 1504, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLERPMPID_DFACTOR = Field.create("IDLERPMPID_DFACTOR", 1508, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLERPMPID_OFFSET = Field.create("IDLERPMPID_OFFSET", 1512, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID_PERIODMS = Field.create("IDLERPMPID_PERIODMS", 1514, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID_MINVALUE = Field.create("IDLERPMPID_MINVALUE", 1516, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID_MAXVALUE = Field.create("IDLERPMPID_MAXVALUE", 1518, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field WWAEBETA = Field.create("WWAEBETA", 1520, FieldType.FLOAT).setBaseOffset(0); - public static final Field COMMUNICATIONLEDPIN = Field.create("COMMUNICATIONLEDPIN", 1524, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field RUNNINGLEDPIN = Field.create("RUNNINGLEDPIN", 1526, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field BINARYSERIALTXPIN = Field.create("BINARYSERIALTXPIN", 1528, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field BINARYSERIALRXPIN = Field.create("BINARYSERIALRXPIN", 1530, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field AUXVALVES1 = Field.create("AUXVALVES1", 1532, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field AUXVALVES2 = Field.create("AUXVALVES2", 1534, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TCUUPSHIFTBUTTONPIN = Field.create("TCUUPSHIFTBUTTONPIN", 1536, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCUDOWNSHIFTBUTTONPIN = Field.create("TCUDOWNSHIFTBUTTONPIN", 1538, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field THROTTLEPEDALUPVOLTAGE = Field.create("THROTTLEPEDALUPVOLTAGE", 1540, FieldType.FLOAT).setBaseOffset(0); - public static final Field THROTTLEPEDALWOTVOLTAGE = Field.create("THROTTLEPEDALWOTVOLTAGE", 1544, FieldType.FLOAT).setBaseOffset(0); - public static final Field STARTUPFUELPUMPDURATION = Field.create("STARTUPFUELPUMPDURATION", 1548, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLEPIDRPMDEADZONE = Field.create("IDLEPIDRPMDEADZONE", 1550, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TARGETVBATT = Field.create("TARGETVBATT", 1552, FieldType.FLOAT).setBaseOffset(0); - public static final Field ALTERNATOROFFABOVETPS = Field.create("ALTERNATOROFFABOVETPS", 1556, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFTERCRANKINGIACTAPERDURATION = Field.create("AFTERCRANKINGIACTAPERDURATION", 1560, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IACBYTPSTAPER = Field.create("IACBYTPSTAPER", 1562, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXSERIALTXPIN = Field.create("AUXSERIALTXPIN", 1564, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field WARNINGLEDPIN = Field.create("WARNINGLEDPIN", 1566, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field AUXSERIALRXPIN = Field.create("AUXSERIALRXPIN", 1568, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LIS302DLCSPIN = Field.create("LIS302DLCSPIN", 1570, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TPSACCELLOOKBACK = Field.create("TPSACCELLOOKBACK", 1572, FieldType.INT8).setScale(0.05).setBaseOffset(0); - public static final Field COASTINGFUELCUTVSSLOW = Field.create("COASTINGFUELCUTVSSLOW", 1573, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field COASTINGFUELCUTVSSHIGH = Field.create("COASTINGFUELCUTVSSHIGH", 1574, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field NOFUELTRIMAFTERDFCOTIME = Field.create("NOFUELTRIMAFTERDFCOTIME", 1575, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field TPSACCELENRICHMENTTHRESHOLD = Field.create("TPSACCELENRICHMENTTHRESHOLD", 1576, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXSPEEDSENSORINPUTPIN1 = Field.create("AUXSPEEDSENSORINPUTPIN1", 1580, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXSPEEDSENSORINPUTPIN2 = Field.create("AUXSPEEDSENSORINPUTPIN2", 1582, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TOTALGEARSCOUNT = Field.create("TOTALGEARSCOUNT", 1584, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field INJECTIONTIMINGMODE = Field.create("INJECTIONTIMINGMODE", 1585, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1586 = Field.create("ALIGNMENTFILL_AT_1586", 1586, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field UARTCONSOLESERIALSPEED = Field.create("UARTCONSOLESERIALSPEED", 1588, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TPSDECELENLEANMENTTHRESHOLD = Field.create("TPSDECELENLEANMENTTHRESHOLD", 1592, FieldType.FLOAT).setBaseOffset(0); - public static final Field TPSDECELENLEANMENTMULTIPLIER = Field.create("TPSDECELENLEANMENTMULTIPLIER", 1596, FieldType.FLOAT).setBaseOffset(0); - public static final Field SLOWADCALPHA = Field.create("SLOWADCALPHA", 1600, FieldType.FLOAT).setBaseOffset(0); - public static final String[] debug_mode_e = {"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", "CJ125", "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"}; - public static final Field DEBUGMODE = Field.create("DEBUGMODE", 1604, FieldType.INT8, debug_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1605 = Field.create("ALIGNMENTFILL_AT_1605", 1605, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXSERIALSPEED = Field.create("AUXSERIALSPEED", 1608, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field THROTTLEPEDALSECONDARYUPVOLTAGE = Field.create("THROTTLEPEDALSECONDARYUPVOLTAGE", 1612, FieldType.FLOAT).setBaseOffset(0); - public static final Field THROTTLEPEDALSECONDARYWOTVOLTAGE = Field.create("THROTTLEPEDALSECONDARYWOTVOLTAGE", 1616, FieldType.FLOAT).setBaseOffset(0); + public static final Field ANTILAGACTIVATIONMODE = Field.create("ANTILAGACTIVATIONMODE", 949, FieldType.INT8, antiLagActivationMode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_950 = Field.create("ALIGNMENTFILL_AT_950", 950, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHSPEEDTHRESHOLD = Field.create("LAUNCHSPEEDTHRESHOLD", 952, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHTIMINGRPMRANGE = Field.create("LAUNCHTIMINGRPMRANGE", 956, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHFUELADDED = Field.create("LAUNCHFUELADDED", 960, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHBOOSTDUTY = Field.create("LAUNCHBOOSTDUTY", 964, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field HARDCUTRPMRANGE = Field.create("HARDCUTRPMRANGE", 968, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TURBOCHARGERFILTER = Field.create("TURBOCHARGERFILTER", 972, FieldType.FLOAT).setBaseOffset(0); + public static final Field LAUNCHTPSTHRESHOLD = Field.create("LAUNCHTPSTHRESHOLD", 976, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHACTIVATEDELAY = Field.create("LAUNCHACTIVATEDELAY", 980, FieldType.FLOAT).setBaseOffset(0); + public static final Field STFT_MAXIDLEREGIONRPM = Field.create("STFT_MAXIDLEREGIONRPM", 984, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field STFT_MAXOVERRUNLOAD = Field.create("STFT_MAXOVERRUNLOAD", 985, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_MINPOWERLOAD = Field.create("STFT_MINPOWERLOAD", 986, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_DEADBAND = Field.create("STFT_DEADBAND", 987, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field STFT_MINCLT = Field.create("STFT_MINCLT", 988, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_MINAFR = Field.create("STFT_MINAFR", 989, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field STFT_MAXAFR = Field.create("STFT_MAXAFR", 990, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field STFT_STARTUPDELAY = Field.create("STFT_STARTUPDELAY", 991, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS1_MAXADD = Field.create("STFT_CELLCFGS1_MAXADD", 992, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS1_MAXREMOVE = Field.create("STFT_CELLCFGS1_MAXREMOVE", 993, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS1_TIMECONSTANT = Field.create("STFT_CELLCFGS1_TIMECONSTANT", 994, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field STFT_CELLCFGS2_MAXADD = Field.create("STFT_CELLCFGS2_MAXADD", 996, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS2_MAXREMOVE = Field.create("STFT_CELLCFGS2_MAXREMOVE", 997, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS2_TIMECONSTANT = Field.create("STFT_CELLCFGS2_TIMECONSTANT", 998, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field STFT_CELLCFGS3_MAXADD = Field.create("STFT_CELLCFGS3_MAXADD", 1000, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS3_MAXREMOVE = Field.create("STFT_CELLCFGS3_MAXREMOVE", 1001, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS3_TIMECONSTANT = Field.create("STFT_CELLCFGS3_TIMECONSTANT", 1002, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field STFT_CELLCFGS4_MAXADD = Field.create("STFT_CELLCFGS4_MAXADD", 1004, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS4_MAXREMOVE = Field.create("STFT_CELLCFGS4_MAXREMOVE", 1005, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STFT_CELLCFGS4_TIMECONSTANT = Field.create("STFT_CELLCFGS4_TIMECONSTANT", 1006, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field STEPPERDCIO1_DIRECTIONPIN1 = Field.create("STEPPERDCIO1_DIRECTIONPIN1", 1008, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO1_DIRECTIONPIN2 = Field.create("STEPPERDCIO1_DIRECTIONPIN2", 1010, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO1_CONTROLPIN = Field.create("STEPPERDCIO1_CONTROLPIN", 1012, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO1_DISABLEPIN = Field.create("STEPPERDCIO1_DISABLEPIN", 1014, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO2_DIRECTIONPIN1 = Field.create("STEPPERDCIO2_DIRECTIONPIN1", 1016, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO2_DIRECTIONPIN2 = Field.create("STEPPERDCIO2_DIRECTIONPIN2", 1018, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO2_CONTROLPIN = Field.create("STEPPERDCIO2_CONTROLPIN", 1020, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCIO2_DISABLEPIN = Field.create("STEPPERDCIO2_DISABLEPIN", 1022, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ENGINEMAKE = Field.create("ENGINEMAKE", 1024, 32, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field ENGINECODE = Field.create("ENGINECODE", 1056, 32, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field VEHICLENAME = Field.create("VEHICLENAME", 1088, 32, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID1 = Field.create("TCU_SOLENOID1", 1120, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID2 = Field.create("TCU_SOLENOID2", 1122, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID3 = Field.create("TCU_SOLENOID3", 1124, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID4 = Field.create("TCU_SOLENOID4", 1126, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID5 = Field.create("TCU_SOLENOID5", 1128, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID6 = Field.create("TCU_SOLENOID6", 1130, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field ETBFUNCTIONS1 = Field.create("ETBFUNCTIONS1", 1132, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ETBFUNCTIONS2 = Field.create("ETBFUNCTIONS2", 1133, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field DRV8860SPIDEVICE = Field.create("DRV8860SPIDEVICE", 1134, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1135 = Field.create("ALIGNMENTFILL_AT_1135", 1135, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field DRV8860_CS = Field.create("DRV8860_CS", 1136, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field DRV8860_CSPINMODE = Field.create("DRV8860_CSPINMODE", 1138, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1139 = Field.create("ALIGNMENTFILL_AT_1139", 1139, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field DRV8860_MISO = Field.create("DRV8860_MISO", 1140, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field FUELLEVELBINS = Field.create("FUELLEVELBINS", 1142, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field LUAOUTPUTPINS1 = Field.create("LUAOUTPUTPINS1", 1158, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS2 = Field.create("LUAOUTPUTPINS2", 1160, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS3 = Field.create("LUAOUTPUTPINS3", 1162, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS4 = Field.create("LUAOUTPUTPINS4", 1164, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS5 = Field.create("LUAOUTPUTPINS5", 1166, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS6 = Field.create("LUAOUTPUTPINS6", 1168, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS7 = Field.create("LUAOUTPUTPINS7", 1170, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LUAOUTPUTPINS8 = Field.create("LUAOUTPUTPINS8", 1172, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1174 = Field.create("ALIGNMENTFILL_AT_1174", 1174, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VVTOFFSETS1 = Field.create("VVTOFFSETS1", 1176, FieldType.FLOAT).setBaseOffset(0); + public static final Field VVTOFFSETS2 = Field.create("VVTOFFSETS2", 1180, FieldType.FLOAT).setBaseOffset(0); + public static final Field VVTOFFSETS3 = Field.create("VVTOFFSETS3", 1184, FieldType.FLOAT).setBaseOffset(0); + public static final Field VVTOFFSETS4 = Field.create("VVTOFFSETS4", 1188, FieldType.FLOAT).setBaseOffset(0); + public static final Field VRTHRESHOLD1_RPMBINS = Field.create("VRTHRESHOLD1_RPMBINS", 1192, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field VRTHRESHOLD1_VALUES = Field.create("VRTHRESHOLD1_VALUES", 1198, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field VRTHRESHOLD1_PIN = Field.create("VRTHRESHOLD1_PIN", 1204, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field VRTHRESHOLD1_ALIGNMENTFILL_AT_14 = Field.create("VRTHRESHOLD1_ALIGNMENTFILL_AT_14", 1206, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VRTHRESHOLD2_RPMBINS = Field.create("VRTHRESHOLD2_RPMBINS", 1208, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field VRTHRESHOLD2_VALUES = Field.create("VRTHRESHOLD2_VALUES", 1214, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field VRTHRESHOLD2_PIN = Field.create("VRTHRESHOLD2_PIN", 1220, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field VRTHRESHOLD2_ALIGNMENTFILL_AT_14 = Field.create("VRTHRESHOLD2_ALIGNMENTFILL_AT_14", 1222, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWMNOTE1 = Field.create("GPPWMNOTE1", 1224, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field GPPWMNOTE2 = Field.create("GPPWMNOTE2", 1240, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field GPPWMNOTE3 = Field.create("GPPWMNOTE3", 1256, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field GPPWMNOTE4 = Field.create("GPPWMNOTE4", 1272, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field TPS2SECONDARYMIN = Field.create("TPS2SECONDARYMIN", 1288, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPS2SECONDARYMAX = Field.create("TPS2SECONDARYMAX", 1290, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field WIDEBANDONSECONDBUS = Field.create("WIDEBANDONSECONDBUS", 1292, FieldType.BIT, 0).setBaseOffset(0); + public static final Field FUELCLOSEDLOOPCORRECTIONENABLED = Field.create("FUELCLOSEDLOOPCORRECTIONENABLED", 1292, FieldType.BIT, 1).setBaseOffset(0); + public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 1292, FieldType.BIT, 2).setBaseOffset(0); + public static final Field BOARDUSETACHPULLUP = Field.create("BOARDUSETACHPULLUP", 1292, FieldType.BIT, 3).setBaseOffset(0); + public static final Field BOARDUSETEMPPULLUP = Field.create("BOARDUSETEMPPULLUP", 1292, FieldType.BIT, 4).setBaseOffset(0); + public static final Field YESUNDERSTANDLOCKING = Field.create("YESUNDERSTANDLOCKING", 1292, FieldType.BIT, 5).setBaseOffset(0); + public static final Field SILENTTRIGGERERROR = Field.create("SILENTTRIGGERERROR", 1292, FieldType.BIT, 6).setBaseOffset(0); + public static final Field USELINEARCLTSENSOR = Field.create("USELINEARCLTSENSOR", 1292, FieldType.BIT, 7).setBaseOffset(0); + public static final Field CANREADENABLED = Field.create("CANREADENABLED", 1292, FieldType.BIT, 8).setBaseOffset(0); + public static final Field CANWRITEENABLED = Field.create("CANWRITEENABLED", 1292, FieldType.BIT, 9).setBaseOffset(0); + public static final Field USELINEARIATSENSOR = Field.create("USELINEARIATSENSOR", 1292, FieldType.BIT, 10).setBaseOffset(0); + public static final Field BOARDUSE2STEPPULLDOWN = Field.create("BOARDUSE2STEPPULLDOWN", 1292, FieldType.BIT, 11).setBaseOffset(0); + public static final Field TACHPULSEDURATIONASDUTYCYCLE = Field.create("TACHPULSEDURATIONASDUTYCYCLE", 1292, FieldType.BIT, 12).setBaseOffset(0); + public static final Field ISALTERNATORCONTROLENABLED = Field.create("ISALTERNATORCONTROLENABLED", 1292, FieldType.BIT, 13).setBaseOffset(0); + public static final Field INVERTPRIMARYTRIGGERSIGNAL = Field.create("INVERTPRIMARYTRIGGERSIGNAL", 1292, FieldType.BIT, 14).setBaseOffset(0); + public static final Field INVERTSECONDARYTRIGGERSIGNAL = Field.create("INVERTSECONDARYTRIGGERSIGNAL", 1292, FieldType.BIT, 15).setBaseOffset(0); + public static final Field CUTFUELONHARDLIMIT = Field.create("CUTFUELONHARDLIMIT", 1292, FieldType.BIT, 16).setBaseOffset(0); + public static final Field CUTSPARKONHARDLIMIT = Field.create("CUTSPARKONHARDLIMIT", 1292, FieldType.BIT, 17).setBaseOffset(0); + public static final Field LAUNCHFUELCUTENABLE = Field.create("LAUNCHFUELCUTENABLE", 1292, FieldType.BIT, 18).setBaseOffset(0); + public static final Field LAUNCHSPARKCUTENABLE = Field.create("LAUNCHSPARKCUTENABLE", 1292, FieldType.BIT, 19).setBaseOffset(0); + public static final Field BOARDUSECRANKPULLUP = Field.create("BOARDUSECRANKPULLUP", 1292, FieldType.BIT, 20).setBaseOffset(0); + public static final Field BOARDUSECAMPULLDOWN = Field.create("BOARDUSECAMPULLDOWN", 1292, FieldType.BIT, 21).setBaseOffset(0); + public static final Field BOARDUSECAMVRPULLUP = Field.create("BOARDUSECAMVRPULLUP", 1292, FieldType.BIT, 22).setBaseOffset(0); + public static final Field BOARDUSED2PULLDOWN = Field.create("BOARDUSED2PULLDOWN", 1292, FieldType.BIT, 23).setBaseOffset(0); + public static final Field BOARDUSED3PULLDOWN = Field.create("BOARDUSED3PULLDOWN", 1292, FieldType.BIT, 24).setBaseOffset(0); + public static final Field BOARDUSED4PULLDOWN = Field.create("BOARDUSED4PULLDOWN", 1292, FieldType.BIT, 25).setBaseOffset(0); + public static final Field BOARDUSED5PULLDOWN = Field.create("BOARDUSED5PULLDOWN", 1292, FieldType.BIT, 26).setBaseOffset(0); + public static final Field VERBOSEISOTP = Field.create("VERBOSEISOTP", 1292, FieldType.BIT, 27).setBaseOffset(0); + public static final Field ENGINESNIFFERFOCUSONINPUTS = Field.create("ENGINESNIFFERFOCUSONINPUTS", 1292, FieldType.BIT, 28).setBaseOffset(0); + public static final Field LAUNCHACTIVATEINVERTED = Field.create("LAUNCHACTIVATEINVERTED", 1292, FieldType.BIT, 29).setBaseOffset(0); + public static final Field TWOSTROKE = Field.create("TWOSTROKE", 1292, FieldType.BIT, 30).setBaseOffset(0); + public static final Field SKIPPEDWHEELONCAM = Field.create("SKIPPEDWHEELONCAM", 1292, FieldType.BIT, 31).setBaseOffset(0); + public static final Field HIPOUTPUTCHANNEL = Field.create("HIPOUTPUTCHANNEL", 1296, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1297 = Field.create("ALIGNMENTFILL_AT_1297", 1297, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ACSWITCH = Field.create("ACSWITCH", 1298, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field VREFADCCHANNEL = Field.create("VREFADCCHANNEL", 1300, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field ETBNEUTRALPOSITION = Field.create("ETBNEUTRALPOSITION", 1301, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IDLEMODE = Field.create("IDLEMODE", 1302, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1303 = Field.create("ALIGNMENTFILL_AT_1303", 1303, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ISINJECTIONENABLED = Field.create("ISINJECTIONENABLED", 1304, FieldType.BIT, 0).setBaseOffset(0); + public static final Field ISIGNITIONENABLED = Field.create("ISIGNITIONENABLED", 1304, FieldType.BIT, 1).setBaseOffset(0); + public static final Field ISCYLINDERCLEANUPENABLED = Field.create("ISCYLINDERCLEANUPENABLED", 1304, FieldType.BIT, 2).setBaseOffset(0); + public static final Field COMPLEXWALLMODEL = Field.create("COMPLEXWALLMODEL", 1304, FieldType.BIT, 3).setBaseOffset(0); + public static final Field ALWAYSINSTANTRPM = Field.create("ALWAYSINSTANTRPM", 1304, FieldType.BIT, 4).setBaseOffset(0); + public static final Field ISMAPAVERAGINGENABLED = Field.create("ISMAPAVERAGINGENABLED", 1304, FieldType.BIT, 5).setBaseOffset(0); + public static final Field OVERRIDECRANKINGIACSETTING = Field.create("OVERRIDECRANKINGIACSETTING", 1304, FieldType.BIT, 6).setBaseOffset(0); + public static final Field USESEPARATEADVANCEFORIDLE = Field.create("USESEPARATEADVANCEFORIDLE", 1304, FieldType.BIT, 7).setBaseOffset(0); + public static final Field ISWAVEANALYZERENABLED = Field.create("ISWAVEANALYZERENABLED", 1304, FieldType.BIT, 8).setBaseOffset(0); + public static final Field USESEPARATEVEFORIDLE = Field.create("USESEPARATEVEFORIDLE", 1304, FieldType.BIT, 9).setBaseOffset(0); + public static final Field VERBOSETRIGGERSYNCHDETAILS = Field.create("VERBOSETRIGGERSYNCHDETAILS", 1304, FieldType.BIT, 10).setBaseOffset(0); + public static final Field ISMANUALSPINNINGMODE = Field.create("ISMANUALSPINNINGMODE", 1304, FieldType.BIT, 11).setBaseOffset(0); + public static final Field TWOWIREBATCHINJECTION = Field.create("TWOWIREBATCHINJECTION", 1304, FieldType.BIT, 12).setBaseOffset(0); + public static final Field NEVERINSTANTRPM = Field.create("NEVERINSTANTRPM", 1304, FieldType.BIT, 13).setBaseOffset(0); + public static final Field TWOWIREBATCHIGNITION = Field.create("TWOWIREBATCHIGNITION", 1304, FieldType.BIT, 14).setBaseOffset(0); + public static final Field USEFIXEDBAROCORRFROMMAP = Field.create("USEFIXEDBAROCORRFROMMAP", 1304, FieldType.BIT, 15).setBaseOffset(0); + public static final Field USESEPARATEADVANCEFORCRANKING = Field.create("USESEPARATEADVANCEFORCRANKING", 1304, FieldType.BIT, 16).setBaseOffset(0); + public static final Field USEADVANCECORRECTIONSFORCRANKING = Field.create("USEADVANCECORRECTIONSFORCRANKING", 1304, FieldType.BIT, 17).setBaseOffset(0); + public static final Field FLEXCRANKING = Field.create("FLEXCRANKING", 1304, FieldType.BIT, 18).setBaseOffset(0); + public static final Field USEIACPIDMULTTABLE = Field.create("USEIACPIDMULTTABLE", 1304, FieldType.BIT, 19).setBaseOffset(0); + public static final Field ISBOOSTCONTROLENABLED = Field.create("ISBOOSTCONTROLENABLED", 1304, FieldType.BIT, 20).setBaseOffset(0); + public static final Field LAUNCHSMOOTHRETARD = Field.create("LAUNCHSMOOTHRETARD", 1304, FieldType.BIT, 21).setBaseOffset(0); + public static final Field ISPHASESYNCREQUIREDFORIGNITION = Field.create("ISPHASESYNCREQUIREDFORIGNITION", 1304, FieldType.BIT, 22).setBaseOffset(0); + public static final Field USECLTBASEDRPMLIMIT = Field.create("USECLTBASEDRPMLIMIT", 1304, FieldType.BIT, 23).setBaseOffset(0); + public static final Field FORCEO2HEATING = Field.create("FORCEO2HEATING", 1304, FieldType.BIT, 24).setBaseOffset(0); + public static final Field INVERTVVTCONTROLINTAKE = Field.create("INVERTVVTCONTROLINTAKE", 1304, FieldType.BIT, 25).setBaseOffset(0); + public static final Field INVERTVVTCONTROLEXHAUST = Field.create("INVERTVVTCONTROLEXHAUST", 1304, FieldType.BIT, 26).setBaseOffset(0); + public static final Field USEBIQUADONAUXSPEEDSENSORS = Field.create("USEBIQUADONAUXSPEEDSENSORS", 1304, FieldType.BIT, 27).setBaseOffset(0); + public static final Field SDTRIGGERLOG = Field.create("SDTRIGGERLOG", 1304, FieldType.BIT, 28).setBaseOffset(0); + public static final Field ALSACTIVATEINVERTED = Field.create("ALSACTIVATEINVERTED", 1304, FieldType.BIT, 29).setBaseOffset(0); + public static final Field TEMPBOOLEANFORVERYSPECIALLOGIC = Field.create("TEMPBOOLEANFORVERYSPECIALLOGIC", 1304, FieldType.BIT, 31).setBaseOffset(0); + public static final Field ENGINECHARTSIZE = Field.create("ENGINECHARTSIZE", 1308, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TURBOSPEEDSENSORMULTIPLIER = Field.create("TURBOSPEEDSENSORMULTIPLIER", 1312, FieldType.FLOAT).setBaseOffset(0); + public static final Field CAMINPUTSDEBUG1 = Field.create("CAMINPUTSDEBUG1", 1316, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTSDEBUG2 = Field.create("CAMINPUTSDEBUG2", 1318, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTSDEBUG3 = Field.create("CAMINPUTSDEBUG3", 1320, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CAMINPUTSDEBUG4 = Field.create("CAMINPUTSDEBUG4", 1322, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ACIDLERPMBUMP = Field.create("ACIDLERPMBUMP", 1324, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field WARNINGPERIOD = Field.create("WARNINGPERIOD", 1326, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field KNOCKDETECTIONWINDOWSTART = Field.create("KNOCKDETECTIONWINDOWSTART", 1328, FieldType.FLOAT).setBaseOffset(0); + public static final Field KNOCKDETECTIONWINDOWEND = Field.create("KNOCKDETECTIONWINDOWEND", 1332, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLESTEPPERREACTIONTIME = Field.create("IDLESTEPPERREACTIONTIME", 1336, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLESTEPPERTOTALSTEPS = Field.create("IDLESTEPPERTOTALSTEPS", 1340, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field NOACCELAFTERHARDLIMITPERIODSECS = Field.create("NOACCELAFTERHARDLIMITPERIODSECS", 1344, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAPAVERAGINGSCHEDULINGATINDEX = Field.create("MAPAVERAGINGSCHEDULINGATINDEX", 1348, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TACHPULSEDURACTIONMS = Field.create("TACHPULSEDURACTIONMS", 1352, FieldType.FLOAT).setBaseOffset(0); + public static final Field WWAETAU = Field.create("WWAETAU", 1356, FieldType.FLOAT).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_PFACTOR = Field.create("ALTERNATORCONTROL_PFACTOR", 1360, FieldType.FLOAT).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_IFACTOR = Field.create("ALTERNATORCONTROL_IFACTOR", 1364, FieldType.FLOAT).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_DFACTOR = Field.create("ALTERNATORCONTROL_DFACTOR", 1368, FieldType.FLOAT).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_OFFSET = Field.create("ALTERNATORCONTROL_OFFSET", 1372, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_PERIODMS = Field.create("ALTERNATORCONTROL_PERIODMS", 1374, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_MINVALUE = Field.create("ALTERNATORCONTROL_MINVALUE", 1376, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALTERNATORCONTROL_MAXVALUE = Field.create("ALTERNATORCONTROL_MAXVALUE", 1378, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETB_PFACTOR = Field.create("ETB_PFACTOR", 1380, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETB_IFACTOR = Field.create("ETB_IFACTOR", 1384, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETB_DFACTOR = Field.create("ETB_DFACTOR", 1388, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETB_OFFSET = Field.create("ETB_OFFSET", 1392, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETB_PERIODMS = Field.create("ETB_PERIODMS", 1394, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETB_MINVALUE = Field.create("ETB_MINVALUE", 1396, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETB_MAXVALUE = Field.create("ETB_MAXVALUE", 1398, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERINPUTDEBUGPINS1 = Field.create("TRIGGERINPUTDEBUGPINS1", 1400, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERINPUTDEBUGPINS2 = Field.create("TRIGGERINPUTDEBUGPINS2", 1402, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field AIRTAPERRPMRANGE = Field.create("AIRTAPERRPMRANGE", 1404, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TURBOSPEEDSENSORINPUTPIN = Field.create("TURBOSPEEDSENSORINPUTPIN", 1406, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TPS2MIN = Field.create("TPS2MIN", 1408, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPS2MAX = Field.create("TPS2MAX", 1410, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field STARTERCONTROLPIN = Field.create("STARTERCONTROLPIN", 1412, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field STARTSTOPBUTTONMODE = Field.create("STARTSTOPBUTTONMODE", 1414, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1415 = Field.create("ALIGNMENTFILL_AT_1415", 1415, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MC33816_FLAG0 = Field.create("MC33816_FLAG0", 1416, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TACHPULSEPERREV = Field.create("TACHPULSEPERREV", 1418, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1419 = Field.create("ALIGNMENTFILL_AT_1419", 1419, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAPERRORDETECTIONTOOLOW = Field.create("MAPERRORDETECTIONTOOLOW", 1420, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAPERRORDETECTIONTOOHIGH = Field.create("MAPERRORDETECTIONTOOHIGH", 1424, FieldType.FLOAT).setBaseOffset(0); + public static final Field MULTISPARKSPARKDURATION = Field.create("MULTISPARKSPARKDURATION", 1428, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field MULTISPARKDWELL = Field.create("MULTISPARKDWELL", 1430, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field IDLERPMPID_PFACTOR = Field.create("IDLERPMPID_PFACTOR", 1432, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLERPMPID_IFACTOR = Field.create("IDLERPMPID_IFACTOR", 1436, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLERPMPID_DFACTOR = Field.create("IDLERPMPID_DFACTOR", 1440, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLERPMPID_OFFSET = Field.create("IDLERPMPID_OFFSET", 1444, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID_PERIODMS = Field.create("IDLERPMPID_PERIODMS", 1446, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID_MINVALUE = Field.create("IDLERPMPID_MINVALUE", 1448, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID_MAXVALUE = Field.create("IDLERPMPID_MAXVALUE", 1450, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field WWAEBETA = Field.create("WWAEBETA", 1452, FieldType.FLOAT).setBaseOffset(0); + public static final Field COMMUNICATIONLEDPIN = Field.create("COMMUNICATIONLEDPIN", 1456, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field RUNNINGLEDPIN = Field.create("RUNNINGLEDPIN", 1458, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field BINARYSERIALTXPIN = Field.create("BINARYSERIALTXPIN", 1460, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field BINARYSERIALRXPIN = Field.create("BINARYSERIALRXPIN", 1462, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field AUXVALVES1 = Field.create("AUXVALVES1", 1464, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field AUXVALVES2 = Field.create("AUXVALVES2", 1466, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TCUUPSHIFTBUTTONPIN = Field.create("TCUUPSHIFTBUTTONPIN", 1468, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCUDOWNSHIFTBUTTONPIN = Field.create("TCUDOWNSHIFTBUTTONPIN", 1470, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLEPEDALUPVOLTAGE = Field.create("THROTTLEPEDALUPVOLTAGE", 1472, FieldType.FLOAT).setBaseOffset(0); + public static final Field THROTTLEPEDALWOTVOLTAGE = Field.create("THROTTLEPEDALWOTVOLTAGE", 1476, FieldType.FLOAT).setBaseOffset(0); + public static final Field STARTUPFUELPUMPDURATION = Field.create("STARTUPFUELPUMPDURATION", 1480, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLEPIDRPMDEADZONE = Field.create("IDLEPIDRPMDEADZONE", 1482, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TARGETVBATT = Field.create("TARGETVBATT", 1484, FieldType.FLOAT).setBaseOffset(0); + public static final Field ALTERNATOROFFABOVETPS = Field.create("ALTERNATOROFFABOVETPS", 1488, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFTERCRANKINGIACTAPERDURATION = Field.create("AFTERCRANKINGIACTAPERDURATION", 1492, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IACBYTPSTAPER = Field.create("IACBYTPSTAPER", 1494, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXSERIALTXPIN = Field.create("AUXSERIALTXPIN", 1496, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field WARNINGLEDPIN = Field.create("WARNINGLEDPIN", 1498, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field AUXSERIALRXPIN = Field.create("AUXSERIALRXPIN", 1500, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LIS302DLCSPIN = Field.create("LIS302DLCSPIN", 1502, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TPSACCELLOOKBACK = Field.create("TPSACCELLOOKBACK", 1504, FieldType.INT8).setScale(0.05).setBaseOffset(0); + public static final Field COASTINGFUELCUTVSSLOW = Field.create("COASTINGFUELCUTVSSLOW", 1505, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field COASTINGFUELCUTVSSHIGH = Field.create("COASTINGFUELCUTVSSHIGH", 1506, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field NOFUELTRIMAFTERDFCOTIME = Field.create("NOFUELTRIMAFTERDFCOTIME", 1507, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field TPSACCELENRICHMENTTHRESHOLD = Field.create("TPSACCELENRICHMENTTHRESHOLD", 1508, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXSPEEDSENSORINPUTPIN1 = Field.create("AUXSPEEDSENSORINPUTPIN1", 1512, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXSPEEDSENSORINPUTPIN2 = Field.create("AUXSPEEDSENSORINPUTPIN2", 1514, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TOTALGEARSCOUNT = Field.create("TOTALGEARSCOUNT", 1516, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field INJECTIONTIMINGMODE = Field.create("INJECTIONTIMINGMODE", 1517, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1518 = Field.create("ALIGNMENTFILL_AT_1518", 1518, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field UARTCONSOLESERIALSPEED = Field.create("UARTCONSOLESERIALSPEED", 1520, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TPSDECELENLEANMENTTHRESHOLD = Field.create("TPSDECELENLEANMENTTHRESHOLD", 1524, FieldType.FLOAT).setBaseOffset(0); + public static final Field TPSDECELENLEANMENTMULTIPLIER = Field.create("TPSDECELENLEANMENTMULTIPLIER", 1528, FieldType.FLOAT).setBaseOffset(0); + public static final Field SLOWADCALPHA = Field.create("SLOWADCALPHA", 1532, FieldType.FLOAT).setBaseOffset(0); + public static final String[] debug_mode_e = {"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"}; + public static final Field DEBUGMODE = Field.create("DEBUGMODE", 1536, FieldType.INT8, debug_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1537 = Field.create("ALIGNMENTFILL_AT_1537", 1537, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXSERIALSPEED = Field.create("AUXSERIALSPEED", 1540, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLEPEDALSECONDARYUPVOLTAGE = Field.create("THROTTLEPEDALSECONDARYUPVOLTAGE", 1544, FieldType.FLOAT).setBaseOffset(0); + public static final Field THROTTLEPEDALSECONDARYWOTVOLTAGE = Field.create("THROTTLEPEDALSECONDARYWOTVOLTAGE", 1548, FieldType.FLOAT).setBaseOffset(0); public static final String[] can_baudrate_e = {"50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps"}; - public static final Field CANBAUDRATE = Field.create("CANBAUDRATE", 1620, FieldType.INT8, can_baudrate_e).setScale(1.0).setBaseOffset(0); + public static final Field CANBAUDRATE = Field.create("CANBAUDRATE", 1552, FieldType.INT8, can_baudrate_e).setScale(1.0).setBaseOffset(0); public static final String[] ve_override_e = {"None", "MAP", "TPS"}; - public static final Field VEOVERRIDEMODE = Field.create("VEOVERRIDEMODE", 1621, FieldType.INT8, ve_override_e).setScale(1.0).setBaseOffset(0); - public static final Field CAN2BAUDRATE = Field.create("CAN2BAUDRATE", 1622, FieldType.INT8, can_baudrate_e).setScale(1.0).setBaseOffset(0); + public static final Field VEOVERRIDEMODE = Field.create("VEOVERRIDEMODE", 1553, FieldType.INT8, ve_override_e).setScale(1.0).setBaseOffset(0); + public static final Field CAN2BAUDRATE = Field.create("CAN2BAUDRATE", 1554, FieldType.INT8, can_baudrate_e).setScale(1.0).setBaseOffset(0); public static final String[] load_override_e = {"None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %"}; - public static final Field AFROVERRIDEMODE = Field.create("AFROVERRIDEMODE", 1623, FieldType.INT8, load_override_e).setScale(1.0).setBaseOffset(0); - public static final Field MC33_HPFP_I_PEAK = Field.create("MC33_HPFP_I_PEAK", 1624, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field MC33_HPFP_I_HOLD = Field.create("MC33_HPFP_I_HOLD", 1625, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field MC33_HPFP_I_HOLD_OFF = Field.create("MC33_HPFP_I_HOLD_OFF", 1626, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MC33_HPFP_MAX_HOLD = Field.create("MC33_HPFP_MAX_HOLD", 1627, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERDCINVERTEDPINS = Field.create("STEPPERDCINVERTEDPINS", 1628, FieldType.BIT, 0).setBaseOffset(0); - public static final Field CANOPENBLT = Field.create("CANOPENBLT", 1628, FieldType.BIT, 1).setBaseOffset(0); - public static final Field CAN2OPENBLT = Field.create("CAN2OPENBLT", 1628, FieldType.BIT, 2).setBaseOffset(0); - public static final Field INJECTORFLOWASMASSFLOW = Field.create("INJECTORFLOWASMASSFLOW", 1628, FieldType.BIT, 3).setBaseOffset(0); - public static final Field BENCHTESTOFFTIME = Field.create("BENCHTESTOFFTIME", 1632, FieldType.INT8).setScale(5.0).setBaseOffset(0); - public static final Field BENCHTESTCOUNT = Field.create("BENCHTESTCOUNT", 1633, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BENCHTESTONTIME = Field.create("BENCHTESTONTIME", 1634, FieldType.INT8).setScale(5.0).setBaseOffset(0); - public static final Field LAUNCHACTIVATEPINMODE = Field.create("LAUNCHACTIVATEPINMODE", 1635, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field CAN2TXPIN = Field.create("CAN2TXPIN", 1636, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field CAN2RXPIN = Field.create("CAN2RXPIN", 1638, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field STARTERCONTROLPINMODE = Field.create("STARTERCONTROLPINMODE", 1640, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field WASTEGATEPOSITIONSENSOR = Field.create("WASTEGATEPOSITIONSENSOR", 1641, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNOVERRIDEMODE = Field.create("IGNOVERRIDEMODE", 1642, FieldType.INT8, load_override_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTORPRESSURETYPE = Field.create("INJECTORPRESSURETYPE", 1643, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPVALVEPIN = Field.create("HPFPVALVEPIN", 1644, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field HPFPVALVEPINMODE = Field.create("HPFPVALVEPINMODE", 1646, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1647 = Field.create("ALIGNMENTFILL_AT_1647", 1647, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field BOOSTCUTPRESSURE = Field.create("BOOSTCUTPRESSURE", 1648, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEBINS = Field.create("TCHARGEBINS", 1652, FieldType.INT8).setScale(5.0).setBaseOffset(0); - public static final Field TCHARGEVALUES = Field.create("TCHARGEVALUES", 1668, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field FIXEDTIMING = Field.create("FIXEDTIMING", 1684, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAPLOWVALUEVOLTAGE = Field.create("MAPLOWVALUEVOLTAGE", 1688, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAPHIGHVALUEVOLTAGE = Field.create("MAPHIGHVALUEVOLTAGE", 1692, FieldType.FLOAT).setBaseOffset(0); - public static final Field EGOVALUESHIFT = Field.create("EGOVALUESHIFT", 1696, FieldType.FLOAT).setBaseOffset(0); - public static final Field VVTPINS1 = Field.create("VVTPINS1", 1700, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field VVTPINS2 = Field.create("VVTPINS2", 1702, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field VVTPINS3 = Field.create("VVTPINS3", 1704, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field VVTPINS4 = Field.create("VVTPINS4", 1706, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CJ125SPIDEVICE = Field.create("CJ125SPIDEVICE", 1708, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CJ125CSPINMODE = Field.create("CJ125CSPINMODE", 1709, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SDCARDCSPINMODE = Field.create("SDCARDCSPINMODE", 1710, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1711 = Field.create("ALIGNMENTFILL_AT_1711", 1711, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CRANKINGIACPOSITION = Field.create("CRANKINGIACPOSITION", 1712, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field TCHARGEMINRPMMINTPS = Field.create("TCHARGEMINRPMMINTPS", 1716, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEMINRPMMAXTPS = Field.create("TCHARGEMINRPMMAXTPS", 1720, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEMAXRPMMINTPS = Field.create("TCHARGEMAXRPMMINTPS", 1724, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEMAXRPMMAXTPS = Field.create("TCHARGEMAXRPMMAXTPS", 1728, FieldType.FLOAT).setBaseOffset(0); - public static final Field VVTOUTPUTFREQUENCY1 = Field.create("VVTOUTPUTFREQUENCY1", 1732, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VVTOUTPUTFREQUENCY2 = Field.create("VVTOUTPUTFREQUENCY2", 1734, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field FAN1EXTRAIDLE = Field.create("FAN1EXTRAIDLE", 1736, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1737 = Field.create("ALIGNMENTFILL_AT_1737", 1737, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALTERNATORPWMFREQUENCY = Field.create("ALTERNATORPWMFREQUENCY", 1740, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field AFROVERRIDEMODE = Field.create("AFROVERRIDEMODE", 1555, FieldType.INT8, load_override_e).setScale(1.0).setBaseOffset(0); + public static final Field MC33_HPFP_I_PEAK = Field.create("MC33_HPFP_I_PEAK", 1556, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field MC33_HPFP_I_HOLD = Field.create("MC33_HPFP_I_HOLD", 1557, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field MC33_HPFP_I_HOLD_OFF = Field.create("MC33_HPFP_I_HOLD_OFF", 1558, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MC33_HPFP_MAX_HOLD = Field.create("MC33_HPFP_MAX_HOLD", 1559, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERDCINVERTEDPINS = Field.create("STEPPERDCINVERTEDPINS", 1560, FieldType.BIT, 0).setBaseOffset(0); + public static final Field CANOPENBLT = Field.create("CANOPENBLT", 1560, FieldType.BIT, 1).setBaseOffset(0); + public static final Field CAN2OPENBLT = Field.create("CAN2OPENBLT", 1560, FieldType.BIT, 2).setBaseOffset(0); + public static final Field INJECTORFLOWASMASSFLOW = Field.create("INJECTORFLOWASMASSFLOW", 1560, FieldType.BIT, 3).setBaseOffset(0); + public static final Field BENCHTESTOFFTIME = Field.create("BENCHTESTOFFTIME", 1564, FieldType.INT8).setScale(5.0).setBaseOffset(0); + public static final Field BENCHTESTCOUNT = Field.create("BENCHTESTCOUNT", 1565, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BENCHTESTONTIME = Field.create("BENCHTESTONTIME", 1566, FieldType.INT8).setScale(5.0).setBaseOffset(0); + public static final Field LAUNCHACTIVATEPINMODE = Field.create("LAUNCHACTIVATEPINMODE", 1567, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field CAN2TXPIN = Field.create("CAN2TXPIN", 1568, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field CAN2RXPIN = Field.create("CAN2RXPIN", 1570, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field STARTERCONTROLPINMODE = Field.create("STARTERCONTROLPINMODE", 1572, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field WASTEGATEPOSITIONSENSOR = Field.create("WASTEGATEPOSITIONSENSOR", 1573, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNOVERRIDEMODE = Field.create("IGNOVERRIDEMODE", 1574, FieldType.INT8, load_override_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTORPRESSURETYPE = Field.create("INJECTORPRESSURETYPE", 1575, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPVALVEPIN = Field.create("HPFPVALVEPIN", 1576, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field HPFPVALVEPINMODE = Field.create("HPFPVALVEPINMODE", 1578, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1579 = Field.create("ALIGNMENTFILL_AT_1579", 1579, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field BOOSTCUTPRESSURE = Field.create("BOOSTCUTPRESSURE", 1580, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEBINS = Field.create("TCHARGEBINS", 1584, FieldType.INT8).setScale(5.0).setBaseOffset(0); + public static final Field TCHARGEVALUES = Field.create("TCHARGEVALUES", 1600, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field FIXEDTIMING = Field.create("FIXEDTIMING", 1616, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAPLOWVALUEVOLTAGE = Field.create("MAPLOWVALUEVOLTAGE", 1620, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAPHIGHVALUEVOLTAGE = Field.create("MAPHIGHVALUEVOLTAGE", 1624, FieldType.FLOAT).setBaseOffset(0); + public static final Field EGOVALUESHIFT = Field.create("EGOVALUESHIFT", 1628, FieldType.FLOAT).setBaseOffset(0); + public static final Field VVTPINS1 = Field.create("VVTPINS1", 1632, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field VVTPINS2 = Field.create("VVTPINS2", 1634, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field VVTPINS3 = Field.create("VVTPINS3", 1636, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field VVTPINS4 = Field.create("VVTPINS4", 1638, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field SDCARDCSPINMODE = Field.create("SDCARDCSPINMODE", 1640, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1641 = Field.create("ALIGNMENTFILL_AT_1641", 1641, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CRANKINGIACPOSITION = Field.create("CRANKINGIACPOSITION", 1644, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field TCHARGEMINRPMMINTPS = Field.create("TCHARGEMINRPMMINTPS", 1648, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEMINRPMMAXTPS = Field.create("TCHARGEMINRPMMAXTPS", 1652, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEMAXRPMMINTPS = Field.create("TCHARGEMAXRPMMINTPS", 1656, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEMAXRPMMAXTPS = Field.create("TCHARGEMAXRPMMAXTPS", 1660, FieldType.FLOAT).setBaseOffset(0); + public static final Field VVTOUTPUTFREQUENCY1 = Field.create("VVTOUTPUTFREQUENCY1", 1664, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VVTOUTPUTFREQUENCY2 = Field.create("VVTOUTPUTFREQUENCY2", 1666, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field FAN1EXTRAIDLE = Field.create("FAN1EXTRAIDLE", 1668, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1669 = Field.create("ALIGNMENTFILL_AT_1669", 1669, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALTERNATORPWMFREQUENCY = Field.create("ALTERNATORPWMFREQUENCY", 1672, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final String[] vvt_mode_e = {"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"}; - public static final Field VVTMODE1 = Field.create("VVTMODE1", 1744, FieldType.INT8, vvt_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field VVTMODE2 = Field.create("VVTMODE2", 1745, FieldType.INT8, vvt_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field FAN2EXTRAIDLE = Field.create("FAN2EXTRAIDLE", 1746, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field PRIMINGDELAY = Field.create("PRIMINGDELAY", 1747, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field AUXANALOGINPUTS1 = Field.create("AUXANALOGINPUTS1", 1748, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS2 = Field.create("AUXANALOGINPUTS2", 1749, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS3 = Field.create("AUXANALOGINPUTS3", 1750, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS4 = Field.create("AUXANALOGINPUTS4", 1751, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS5 = Field.create("AUXANALOGINPUTS5", 1752, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS6 = Field.create("AUXANALOGINPUTS6", 1753, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS7 = Field.create("AUXANALOGINPUTS7", 1754, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXANALOGINPUTS8 = Field.create("AUXANALOGINPUTS8", 1755, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS1 = Field.create("TRAILINGCOILPINS1", 1756, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS2 = Field.create("TRAILINGCOILPINS2", 1758, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS3 = Field.create("TRAILINGCOILPINS3", 1760, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS4 = Field.create("TRAILINGCOILPINS4", 1762, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS5 = Field.create("TRAILINGCOILPINS5", 1764, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS6 = Field.create("TRAILINGCOILPINS6", 1766, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS7 = Field.create("TRAILINGCOILPINS7", 1768, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS8 = Field.create("TRAILINGCOILPINS8", 1770, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS9 = Field.create("TRAILINGCOILPINS9", 1772, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS10 = Field.create("TRAILINGCOILPINS10", 1774, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS11 = Field.create("TRAILINGCOILPINS11", 1776, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TRAILINGCOILPINS12 = Field.create("TRAILINGCOILPINS12", 1778, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TLE8888MODE = Field.create("TLE8888MODE", 1780, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field LIS302DLCSPINMODE = Field.create("LIS302DLCSPINMODE", 1781, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field INJECTORCOMPENSATIONMODE = Field.create("INJECTORCOMPENSATIONMODE", 1782, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FAN2PINMODE = Field.create("FAN2PINMODE", 1783, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field FUELREFERENCEPRESSURE = Field.create("FUELREFERENCEPRESSURE", 1784, FieldType.FLOAT).setBaseOffset(0); - public static final Field POSTCRANKINGFACTOR = Field.create("POSTCRANKINGFACTOR", 1788, FieldType.FLOAT).setBaseOffset(0); - public static final Field POSTCRANKINGDURATIONSEC = Field.create("POSTCRANKINGDURATIONSEC", 1792, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_TEMPC_1 = Field.create("AUXTEMPSENSOR1_TEMPC_1", 1796, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_TEMPC_2 = Field.create("AUXTEMPSENSOR1_TEMPC_2", 1800, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_TEMPC_3 = Field.create("AUXTEMPSENSOR1_TEMPC_3", 1804, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_RESISTANCE_1 = Field.create("AUXTEMPSENSOR1_RESISTANCE_1", 1808, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_RESISTANCE_2 = Field.create("AUXTEMPSENSOR1_RESISTANCE_2", 1812, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_RESISTANCE_3 = Field.create("AUXTEMPSENSOR1_RESISTANCE_3", 1816, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_BIAS_RESISTOR = Field.create("AUXTEMPSENSOR1_BIAS_RESISTOR", 1820, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_ADCCHANNEL = Field.create("AUXTEMPSENSOR1_ADCCHANNEL", 1824, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXTEMPSENSOR1_ALIGNMENTFILL_AT_29 = Field.create("AUXTEMPSENSOR1_ALIGNMENTFILL_AT_29", 1825, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_TEMPC_1 = Field.create("AUXTEMPSENSOR2_TEMPC_1", 1828, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_TEMPC_2 = Field.create("AUXTEMPSENSOR2_TEMPC_2", 1832, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_TEMPC_3 = Field.create("AUXTEMPSENSOR2_TEMPC_3", 1836, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_RESISTANCE_1 = Field.create("AUXTEMPSENSOR2_RESISTANCE_1", 1840, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_RESISTANCE_2 = Field.create("AUXTEMPSENSOR2_RESISTANCE_2", 1844, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_RESISTANCE_3 = Field.create("AUXTEMPSENSOR2_RESISTANCE_3", 1848, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_BIAS_RESISTOR = Field.create("AUXTEMPSENSOR2_BIAS_RESISTOR", 1852, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_ADCCHANNEL = Field.create("AUXTEMPSENSOR2_ADCCHANNEL", 1856, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXTEMPSENSOR2_ALIGNMENTFILL_AT_29 = Field.create("AUXTEMPSENSOR2_ALIGNMENTFILL_AT_29", 1857, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field KNOCKSAMPLINGDURATION = Field.create("KNOCKSAMPLINGDURATION", 1860, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBFREQ = Field.create("ETBFREQ", 1862, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_PFACTOR = Field.create("ETBWASTEGATEPID_PFACTOR", 1864, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_IFACTOR = Field.create("ETBWASTEGATEPID_IFACTOR", 1868, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_DFACTOR = Field.create("ETBWASTEGATEPID_DFACTOR", 1872, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_OFFSET = Field.create("ETBWASTEGATEPID_OFFSET", 1876, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_PERIODMS = Field.create("ETBWASTEGATEPID_PERIODMS", 1878, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_MINVALUE = Field.create("ETBWASTEGATEPID_MINVALUE", 1880, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBWASTEGATEPID_MAXVALUE = Field.create("ETBWASTEGATEPID_MAXVALUE", 1882, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VVTMODE1 = Field.create("VVTMODE1", 1676, FieldType.INT8, vvt_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field VVTMODE2 = Field.create("VVTMODE2", 1677, FieldType.INT8, vvt_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field FAN2EXTRAIDLE = Field.create("FAN2EXTRAIDLE", 1678, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field PRIMINGDELAY = Field.create("PRIMINGDELAY", 1679, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field AUXANALOGINPUTS1 = Field.create("AUXANALOGINPUTS1", 1680, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS2 = Field.create("AUXANALOGINPUTS2", 1681, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS3 = Field.create("AUXANALOGINPUTS3", 1682, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS4 = Field.create("AUXANALOGINPUTS4", 1683, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS5 = Field.create("AUXANALOGINPUTS5", 1684, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS6 = Field.create("AUXANALOGINPUTS6", 1685, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS7 = Field.create("AUXANALOGINPUTS7", 1686, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXANALOGINPUTS8 = Field.create("AUXANALOGINPUTS8", 1687, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS1 = Field.create("TRAILINGCOILPINS1", 1688, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS2 = Field.create("TRAILINGCOILPINS2", 1690, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS3 = Field.create("TRAILINGCOILPINS3", 1692, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS4 = Field.create("TRAILINGCOILPINS4", 1694, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS5 = Field.create("TRAILINGCOILPINS5", 1696, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS6 = Field.create("TRAILINGCOILPINS6", 1698, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS7 = Field.create("TRAILINGCOILPINS7", 1700, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS8 = Field.create("TRAILINGCOILPINS8", 1702, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS9 = Field.create("TRAILINGCOILPINS9", 1704, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS10 = Field.create("TRAILINGCOILPINS10", 1706, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS11 = Field.create("TRAILINGCOILPINS11", 1708, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TRAILINGCOILPINS12 = Field.create("TRAILINGCOILPINS12", 1710, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TLE8888MODE = Field.create("TLE8888MODE", 1712, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field LIS302DLCSPINMODE = Field.create("LIS302DLCSPINMODE", 1713, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field INJECTORCOMPENSATIONMODE = Field.create("INJECTORCOMPENSATIONMODE", 1714, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FAN2PINMODE = Field.create("FAN2PINMODE", 1715, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field FUELREFERENCEPRESSURE = Field.create("FUELREFERENCEPRESSURE", 1716, FieldType.FLOAT).setBaseOffset(0); + public static final Field POSTCRANKINGFACTOR = Field.create("POSTCRANKINGFACTOR", 1720, FieldType.FLOAT).setBaseOffset(0); + public static final Field POSTCRANKINGDURATIONSEC = Field.create("POSTCRANKINGDURATIONSEC", 1724, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_TEMPC_1 = Field.create("AUXTEMPSENSOR1_TEMPC_1", 1728, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_TEMPC_2 = Field.create("AUXTEMPSENSOR1_TEMPC_2", 1732, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_TEMPC_3 = Field.create("AUXTEMPSENSOR1_TEMPC_3", 1736, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_RESISTANCE_1 = Field.create("AUXTEMPSENSOR1_RESISTANCE_1", 1740, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_RESISTANCE_2 = Field.create("AUXTEMPSENSOR1_RESISTANCE_2", 1744, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_RESISTANCE_3 = Field.create("AUXTEMPSENSOR1_RESISTANCE_3", 1748, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_BIAS_RESISTOR = Field.create("AUXTEMPSENSOR1_BIAS_RESISTOR", 1752, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_ADCCHANNEL = Field.create("AUXTEMPSENSOR1_ADCCHANNEL", 1756, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXTEMPSENSOR1_ALIGNMENTFILL_AT_29 = Field.create("AUXTEMPSENSOR1_ALIGNMENTFILL_AT_29", 1757, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_TEMPC_1 = Field.create("AUXTEMPSENSOR2_TEMPC_1", 1760, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_TEMPC_2 = Field.create("AUXTEMPSENSOR2_TEMPC_2", 1764, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_TEMPC_3 = Field.create("AUXTEMPSENSOR2_TEMPC_3", 1768, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_RESISTANCE_1 = Field.create("AUXTEMPSENSOR2_RESISTANCE_1", 1772, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_RESISTANCE_2 = Field.create("AUXTEMPSENSOR2_RESISTANCE_2", 1776, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_RESISTANCE_3 = Field.create("AUXTEMPSENSOR2_RESISTANCE_3", 1780, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_BIAS_RESISTOR = Field.create("AUXTEMPSENSOR2_BIAS_RESISTOR", 1784, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_ADCCHANNEL = Field.create("AUXTEMPSENSOR2_ADCCHANNEL", 1788, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXTEMPSENSOR2_ALIGNMENTFILL_AT_29 = Field.create("AUXTEMPSENSOR2_ALIGNMENTFILL_AT_29", 1789, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field KNOCKSAMPLINGDURATION = Field.create("KNOCKSAMPLINGDURATION", 1792, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBFREQ = Field.create("ETBFREQ", 1794, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_PFACTOR = Field.create("ETBWASTEGATEPID_PFACTOR", 1796, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_IFACTOR = Field.create("ETBWASTEGATEPID_IFACTOR", 1800, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_DFACTOR = Field.create("ETBWASTEGATEPID_DFACTOR", 1804, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_OFFSET = Field.create("ETBWASTEGATEPID_OFFSET", 1808, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_PERIODMS = Field.create("ETBWASTEGATEPID_PERIODMS", 1810, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_MINVALUE = Field.create("ETBWASTEGATEPID_MINVALUE", 1812, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBWASTEGATEPID_MAXVALUE = Field.create("ETBWASTEGATEPID_MAXVALUE", 1814, FieldType.INT16).setScale(1.0).setBaseOffset(0); public static final String[] stepper_num_micro_steps_e = {"Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step"}; - public static final Field STEPPERNUMMICROSTEPS = Field.create("STEPPERNUMMICROSTEPS", 1884, FieldType.INT8, stepper_num_micro_steps_e).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERMINDUTYCYCLE = Field.create("STEPPERMINDUTYCYCLE", 1885, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERMAXDUTYCYCLE = Field.create("STEPPERMAXDUTYCYCLE", 1886, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SDCARDSPIDEVICE = Field.create("SDCARDSPIDEVICE", 1887, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER1 = Field.create("TIMING_OFFSET_CYLINDER1", 1888, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER2 = Field.create("TIMING_OFFSET_CYLINDER2", 1892, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER3 = Field.create("TIMING_OFFSET_CYLINDER3", 1896, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER4 = Field.create("TIMING_OFFSET_CYLINDER4", 1900, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER5 = Field.create("TIMING_OFFSET_CYLINDER5", 1904, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER6 = Field.create("TIMING_OFFSET_CYLINDER6", 1908, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER7 = Field.create("TIMING_OFFSET_CYLINDER7", 1912, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER8 = Field.create("TIMING_OFFSET_CYLINDER8", 1916, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER9 = Field.create("TIMING_OFFSET_CYLINDER9", 1920, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER10 = Field.create("TIMING_OFFSET_CYLINDER10", 1924, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER11 = Field.create("TIMING_OFFSET_CYLINDER11", 1928, FieldType.FLOAT).setBaseOffset(0); - public static final Field TIMING_OFFSET_CYLINDER12 = Field.create("TIMING_OFFSET_CYLINDER12", 1932, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLEPIDACTIVATIONTIME = Field.create("IDLEPIDACTIVATIONTIME", 1936, FieldType.FLOAT).setBaseOffset(0); + public static final Field STEPPERNUMMICROSTEPS = Field.create("STEPPERNUMMICROSTEPS", 1816, FieldType.INT8, stepper_num_micro_steps_e).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERMINDUTYCYCLE = Field.create("STEPPERMINDUTYCYCLE", 1817, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERMAXDUTYCYCLE = Field.create("STEPPERMAXDUTYCYCLE", 1818, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SDCARDSPIDEVICE = Field.create("SDCARDSPIDEVICE", 1819, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER1 = Field.create("TIMING_OFFSET_CYLINDER1", 1820, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER2 = Field.create("TIMING_OFFSET_CYLINDER2", 1824, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER3 = Field.create("TIMING_OFFSET_CYLINDER3", 1828, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER4 = Field.create("TIMING_OFFSET_CYLINDER4", 1832, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER5 = Field.create("TIMING_OFFSET_CYLINDER5", 1836, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER6 = Field.create("TIMING_OFFSET_CYLINDER6", 1840, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER7 = Field.create("TIMING_OFFSET_CYLINDER7", 1844, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER8 = Field.create("TIMING_OFFSET_CYLINDER8", 1848, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER9 = Field.create("TIMING_OFFSET_CYLINDER9", 1852, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER10 = Field.create("TIMING_OFFSET_CYLINDER10", 1856, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER11 = Field.create("TIMING_OFFSET_CYLINDER11", 1860, FieldType.FLOAT).setBaseOffset(0); + public static final Field TIMING_OFFSET_CYLINDER12 = Field.create("TIMING_OFFSET_CYLINDER12", 1864, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLEPIDACTIVATIONTIME = Field.create("IDLEPIDACTIVATIONTIME", 1868, FieldType.FLOAT).setBaseOffset(0); public static final String[] pin_mode_e = {"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"}; - public static final Field SPI1SCKMODE = Field.create("SPI1SCKMODE", 1940, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI1MOSIMODE = Field.create("SPI1MOSIMODE", 1941, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI1MISOMODE = Field.create("SPI1MISOMODE", 1942, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI2SCKMODE = Field.create("SPI2SCKMODE", 1943, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI2MOSIMODE = Field.create("SPI2MOSIMODE", 1944, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI2MISOMODE = Field.create("SPI2MISOMODE", 1945, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI3SCKMODE = Field.create("SPI3SCKMODE", 1946, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI3MOSIMODE = Field.create("SPI3MOSIMODE", 1947, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field SPI3MISOMODE = Field.create("SPI3MISOMODE", 1948, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERENABLEPINMODE = Field.create("STEPPERENABLEPINMODE", 1949, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field MC33816_RSTB = Field.create("MC33816_RSTB", 1950, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field MC33816_DRIVEN = Field.create("MC33816_DRIVEN", 1952, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field BRAKEPEDALPIN = Field.create("BRAKEPEDALPIN", 1954, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field CJ125UA = Field.create("CJ125UA", 1956, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field CJ125UR = Field.create("CJ125UR", 1957, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field BRAKEPEDALPINMODE = Field.create("BRAKEPEDALPINMODE", 1958, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_1959 = Field.create("ALIGNMENTFILL_AT_1959", 1959, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID1_PFACTOR = Field.create("AUXPID1_PFACTOR", 1960, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXPID1_IFACTOR = Field.create("AUXPID1_IFACTOR", 1964, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXPID1_DFACTOR = Field.create("AUXPID1_DFACTOR", 1968, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXPID1_OFFSET = Field.create("AUXPID1_OFFSET", 1972, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID1_PERIODMS = Field.create("AUXPID1_PERIODMS", 1974, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID1_MINVALUE = Field.create("AUXPID1_MINVALUE", 1976, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID1_MAXVALUE = Field.create("AUXPID1_MAXVALUE", 1978, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID2_PFACTOR = Field.create("AUXPID2_PFACTOR", 1980, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXPID2_IFACTOR = Field.create("AUXPID2_IFACTOR", 1984, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXPID2_DFACTOR = Field.create("AUXPID2_DFACTOR", 1988, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXPID2_OFFSET = Field.create("AUXPID2_OFFSET", 1992, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID2_PERIODMS = Field.create("AUXPID2_PERIODMS", 1994, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID2_MINVALUE = Field.create("AUXPID2_MINVALUE", 1996, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field AUXPID2_MAXVALUE = Field.create("AUXPID2_MAXVALUE", 1998, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL1 = Field.create("INJECTORCORRECTIONPOLYNOMIAL1", 2000, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL2 = Field.create("INJECTORCORRECTIONPOLYNOMIAL2", 2004, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL3 = Field.create("INJECTORCORRECTIONPOLYNOMIAL3", 2008, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL4 = Field.create("INJECTORCORRECTIONPOLYNOMIAL4", 2012, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL5 = Field.create("INJECTORCORRECTIONPOLYNOMIAL5", 2016, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL6 = Field.create("INJECTORCORRECTIONPOLYNOMIAL6", 2020, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL7 = Field.create("INJECTORCORRECTIONPOLYNOMIAL7", 2024, FieldType.FLOAT).setBaseOffset(0); - public static final Field INJECTORCORRECTIONPOLYNOMIAL8 = Field.create("INJECTORCORRECTIONPOLYNOMIAL8", 2028, FieldType.FLOAT).setBaseOffset(0); - public static final Field PRIMEBINS = Field.create("PRIMEBINS", 2032, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field OILPRESSURE_HWCHANNEL = Field.create("OILPRESSURE_HWCHANNEL", 2040, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field OILPRESSURE_ALIGNMENTFILL_AT_1 = Field.create("OILPRESSURE_ALIGNMENTFILL_AT_1", 2041, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field OILPRESSURE_V1 = Field.create("OILPRESSURE_V1", 2044, FieldType.FLOAT).setBaseOffset(0); - public static final Field OILPRESSURE_VALUE1 = Field.create("OILPRESSURE_VALUE1", 2048, FieldType.FLOAT).setBaseOffset(0); - public static final Field OILPRESSURE_V2 = Field.create("OILPRESSURE_V2", 2052, FieldType.FLOAT).setBaseOffset(0); - public static final Field OILPRESSURE_VALUE2 = Field.create("OILPRESSURE_VALUE2", 2056, FieldType.FLOAT).setBaseOffset(0); - public static final Field ACCELEROMETERSPIDEVICE = Field.create("ACCELEROMETERSPIDEVICE", 2060, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_2061 = Field.create("ALIGNMENTFILL_AT_2061", 2061, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FAN2PIN = Field.create("FAN2PIN", 2062, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field FAN2ONTEMPERATURE = Field.create("FAN2ONTEMPERATURE", 2064, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FAN2OFFTEMPERATURE = Field.create("FAN2OFFTEMPERATURE", 2065, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STEPPERENABLEPIN = Field.create("STEPPERENABLEPIN", 2066, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TLE8888_CS = Field.create("TLE8888_CS", 2068, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TLE8888_CSPINMODE = Field.create("TLE8888_CSPINMODE", 2070, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_2071 = Field.create("ALIGNMENTFILL_AT_2071", 2071, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MC33816_CS = Field.create("MC33816_CS", 2072, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_2074 = Field.create("ALIGNMENTFILL_AT_2074", 2074, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXFREQUENCYFILTER = Field.create("AUXFREQUENCYFILTER", 2076, FieldType.FLOAT).setBaseOffset(0); - public static final Field VVTCONTROLMINRPM = Field.create("VVTCONTROLMINRPM", 2080, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SENTINPUTPINS1 = Field.create("SENTINPUTPINS1", 2082, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field LAUNCHFUELADDERPERCENT = Field.create("LAUNCHFUELADDERPERCENT", 2084, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ETBJAMTIMEOUT = Field.create("ETBJAMTIMEOUT", 2085, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field ETBEXPAVERAGELENGTH = Field.create("ETBEXPAVERAGELENGTH", 2086, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBDUTYTHRESHOLD = Field.create("ETBDUTYTHRESHOLD", 2088, FieldType.FLOAT).setBaseOffset(0); - public static final Field COASTINGFUELCUTRPMHIGH = Field.create("COASTINGFUELCUTRPMHIGH", 2092, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field COASTINGFUELCUTRPMLOW = Field.create("COASTINGFUELCUTRPMLOW", 2094, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field COASTINGFUELCUTTPS = Field.create("COASTINGFUELCUTTPS", 2096, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field COASTINGFUELCUTCLT = Field.create("COASTINGFUELCUTCLT", 2098, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field PIDEXTRAFORLOWRPM = Field.create("PIDEXTRAFORLOWRPM", 2100, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field COASTINGFUELCUTMAP = Field.create("COASTINGFUELCUTMAP", 2102, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field HIGHPRESSUREFUEL_HWCHANNEL = Field.create("HIGHPRESSUREFUEL_HWCHANNEL", 2104, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field HIGHPRESSUREFUEL_ALIGNMENTFILL_AT_1 = Field.create("HIGHPRESSUREFUEL_ALIGNMENTFILL_AT_1", 2105, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HIGHPRESSUREFUEL_V1 = Field.create("HIGHPRESSUREFUEL_V1", 2108, FieldType.FLOAT).setBaseOffset(0); - public static final Field HIGHPRESSUREFUEL_VALUE1 = Field.create("HIGHPRESSUREFUEL_VALUE1", 2112, FieldType.FLOAT).setBaseOffset(0); - public static final Field HIGHPRESSUREFUEL_V2 = Field.create("HIGHPRESSUREFUEL_V2", 2116, FieldType.FLOAT).setBaseOffset(0); - public static final Field HIGHPRESSUREFUEL_VALUE2 = Field.create("HIGHPRESSUREFUEL_VALUE2", 2120, FieldType.FLOAT).setBaseOffset(0); - public static final Field LOWPRESSUREFUEL_HWCHANNEL = Field.create("LOWPRESSUREFUEL_HWCHANNEL", 2124, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field LOWPRESSUREFUEL_ALIGNMENTFILL_AT_1 = Field.create("LOWPRESSUREFUEL_ALIGNMENTFILL_AT_1", 2125, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field LOWPRESSUREFUEL_V1 = Field.create("LOWPRESSUREFUEL_V1", 2128, FieldType.FLOAT).setBaseOffset(0); - public static final Field LOWPRESSUREFUEL_VALUE1 = Field.create("LOWPRESSUREFUEL_VALUE1", 2132, FieldType.FLOAT).setBaseOffset(0); - public static final Field LOWPRESSUREFUEL_V2 = Field.create("LOWPRESSUREFUEL_V2", 2136, FieldType.FLOAT).setBaseOffset(0); - public static final Field LOWPRESSUREFUEL_VALUE2 = Field.create("LOWPRESSUREFUEL_VALUE2", 2140, FieldType.FLOAT).setBaseOffset(0); - public static final Field CLTREVLIMITRPMBINS = Field.create("CLTREVLIMITRPMBINS", 2144, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CLTREVLIMITRPM = Field.create("CLTREVLIMITRPM", 2148, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTCURVENAME1 = Field.create("SCRIPTCURVENAME1", 2156, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTCURVENAME2 = Field.create("SCRIPTCURVENAME2", 2172, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTCURVENAME3 = Field.create("SCRIPTCURVENAME3", 2188, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTCURVENAME4 = Field.create("SCRIPTCURVENAME4", 2204, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTCURVENAME5 = Field.create("SCRIPTCURVENAME5", 2220, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTCURVENAME6 = Field.create("SCRIPTCURVENAME6", 2236, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLENAME1 = Field.create("SCRIPTTABLENAME1", 2252, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLENAME2 = Field.create("SCRIPTTABLENAME2", 2268, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLENAME3 = Field.create("SCRIPTTABLENAME3", 2284, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLENAME4 = Field.create("SCRIPTTABLENAME4", 2300, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME1 = Field.create("SCRIPTSETTINGNAME1", 2316, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME2 = Field.create("SCRIPTSETTINGNAME2", 2332, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME3 = Field.create("SCRIPTSETTINGNAME3", 2348, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME4 = Field.create("SCRIPTSETTINGNAME4", 2364, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME5 = Field.create("SCRIPTSETTINGNAME5", 2380, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME6 = Field.create("SCRIPTSETTINGNAME6", 2396, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME7 = Field.create("SCRIPTSETTINGNAME7", 2412, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTSETTINGNAME8 = Field.create("SCRIPTSETTINGNAME8", 2428, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field TCHARGEAIRCOEFMIN = Field.create("TCHARGEAIRCOEFMIN", 2444, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEAIRCOEFMAX = Field.create("TCHARGEAIRCOEFMAX", 2448, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEAIRFLOWMAX = Field.create("TCHARGEAIRFLOWMAX", 2452, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEAIRINCRLIMIT = Field.create("TCHARGEAIRINCRLIMIT", 2456, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCHARGEAIRDECRLIMIT = Field.create("TCHARGEAIRDECRLIMIT", 2460, FieldType.FLOAT).setBaseOffset(0); + public static final Field SPI1SCKMODE = Field.create("SPI1SCKMODE", 1872, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI1MOSIMODE = Field.create("SPI1MOSIMODE", 1873, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI1MISOMODE = Field.create("SPI1MISOMODE", 1874, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI2SCKMODE = Field.create("SPI2SCKMODE", 1875, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI2MOSIMODE = Field.create("SPI2MOSIMODE", 1876, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI2MISOMODE = Field.create("SPI2MISOMODE", 1877, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI3SCKMODE = Field.create("SPI3SCKMODE", 1878, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI3MOSIMODE = Field.create("SPI3MOSIMODE", 1879, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field SPI3MISOMODE = Field.create("SPI3MISOMODE", 1880, FieldType.INT8, pin_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERENABLEPINMODE = Field.create("STEPPERENABLEPINMODE", 1881, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field MC33816_RSTB = Field.create("MC33816_RSTB", 1882, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field MC33816_DRIVEN = Field.create("MC33816_DRIVEN", 1884, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field BRAKEPEDALPIN = Field.create("BRAKEPEDALPIN", 1886, FieldType.INT16, switch_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field BRAKEPEDALPINMODE = Field.create("BRAKEPEDALPINMODE", 1888, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1889 = Field.create("ALIGNMENTFILL_AT_1889", 1889, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID1_PFACTOR = Field.create("AUXPID1_PFACTOR", 1892, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXPID1_IFACTOR = Field.create("AUXPID1_IFACTOR", 1896, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXPID1_DFACTOR = Field.create("AUXPID1_DFACTOR", 1900, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXPID1_OFFSET = Field.create("AUXPID1_OFFSET", 1904, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID1_PERIODMS = Field.create("AUXPID1_PERIODMS", 1906, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID1_MINVALUE = Field.create("AUXPID1_MINVALUE", 1908, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID1_MAXVALUE = Field.create("AUXPID1_MAXVALUE", 1910, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID2_PFACTOR = Field.create("AUXPID2_PFACTOR", 1912, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXPID2_IFACTOR = Field.create("AUXPID2_IFACTOR", 1916, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXPID2_DFACTOR = Field.create("AUXPID2_DFACTOR", 1920, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXPID2_OFFSET = Field.create("AUXPID2_OFFSET", 1924, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID2_PERIODMS = Field.create("AUXPID2_PERIODMS", 1926, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID2_MINVALUE = Field.create("AUXPID2_MINVALUE", 1928, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field AUXPID2_MAXVALUE = Field.create("AUXPID2_MAXVALUE", 1930, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL1 = Field.create("INJECTORCORRECTIONPOLYNOMIAL1", 1932, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL2 = Field.create("INJECTORCORRECTIONPOLYNOMIAL2", 1936, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL3 = Field.create("INJECTORCORRECTIONPOLYNOMIAL3", 1940, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL4 = Field.create("INJECTORCORRECTIONPOLYNOMIAL4", 1944, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL5 = Field.create("INJECTORCORRECTIONPOLYNOMIAL5", 1948, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL6 = Field.create("INJECTORCORRECTIONPOLYNOMIAL6", 1952, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL7 = Field.create("INJECTORCORRECTIONPOLYNOMIAL7", 1956, FieldType.FLOAT).setBaseOffset(0); + public static final Field INJECTORCORRECTIONPOLYNOMIAL8 = Field.create("INJECTORCORRECTIONPOLYNOMIAL8", 1960, FieldType.FLOAT).setBaseOffset(0); + public static final Field PRIMEBINS = Field.create("PRIMEBINS", 1964, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field OILPRESSURE_HWCHANNEL = Field.create("OILPRESSURE_HWCHANNEL", 1972, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field OILPRESSURE_ALIGNMENTFILL_AT_1 = Field.create("OILPRESSURE_ALIGNMENTFILL_AT_1", 1973, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field OILPRESSURE_V1 = Field.create("OILPRESSURE_V1", 1976, FieldType.FLOAT).setBaseOffset(0); + public static final Field OILPRESSURE_VALUE1 = Field.create("OILPRESSURE_VALUE1", 1980, FieldType.FLOAT).setBaseOffset(0); + public static final Field OILPRESSURE_V2 = Field.create("OILPRESSURE_V2", 1984, FieldType.FLOAT).setBaseOffset(0); + public static final Field OILPRESSURE_VALUE2 = Field.create("OILPRESSURE_VALUE2", 1988, FieldType.FLOAT).setBaseOffset(0); + public static final Field ACCELEROMETERSPIDEVICE = Field.create("ACCELEROMETERSPIDEVICE", 1992, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_1993 = Field.create("ALIGNMENTFILL_AT_1993", 1993, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FAN2PIN = Field.create("FAN2PIN", 1994, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field FAN2ONTEMPERATURE = Field.create("FAN2ONTEMPERATURE", 1996, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FAN2OFFTEMPERATURE = Field.create("FAN2OFFTEMPERATURE", 1997, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STEPPERENABLEPIN = Field.create("STEPPERENABLEPIN", 1998, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TLE8888_CS = Field.create("TLE8888_CS", 2000, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TLE8888_CSPINMODE = Field.create("TLE8888_CSPINMODE", 2002, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_2003 = Field.create("ALIGNMENTFILL_AT_2003", 2003, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MC33816_CS = Field.create("MC33816_CS", 2004, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_2006 = Field.create("ALIGNMENTFILL_AT_2006", 2006, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXFREQUENCYFILTER = Field.create("AUXFREQUENCYFILTER", 2008, FieldType.FLOAT).setBaseOffset(0); + public static final Field VVTCONTROLMINRPM = Field.create("VVTCONTROLMINRPM", 2012, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SENTINPUTPINS1 = Field.create("SENTINPUTPINS1", 2014, FieldType.INT16, brain_input_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field LAUNCHFUELADDERPERCENT = Field.create("LAUNCHFUELADDERPERCENT", 2016, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ETBJAMTIMEOUT = Field.create("ETBJAMTIMEOUT", 2017, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field ETBEXPAVERAGELENGTH = Field.create("ETBEXPAVERAGELENGTH", 2018, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBDUTYTHRESHOLD = Field.create("ETBDUTYTHRESHOLD", 2020, FieldType.FLOAT).setBaseOffset(0); + public static final Field COASTINGFUELCUTRPMHIGH = Field.create("COASTINGFUELCUTRPMHIGH", 2024, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field COASTINGFUELCUTRPMLOW = Field.create("COASTINGFUELCUTRPMLOW", 2026, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field COASTINGFUELCUTTPS = Field.create("COASTINGFUELCUTTPS", 2028, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field COASTINGFUELCUTCLT = Field.create("COASTINGFUELCUTCLT", 2030, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field PIDEXTRAFORLOWRPM = Field.create("PIDEXTRAFORLOWRPM", 2032, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field COASTINGFUELCUTMAP = Field.create("COASTINGFUELCUTMAP", 2034, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field HIGHPRESSUREFUEL_HWCHANNEL = Field.create("HIGHPRESSUREFUEL_HWCHANNEL", 2036, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field HIGHPRESSUREFUEL_ALIGNMENTFILL_AT_1 = Field.create("HIGHPRESSUREFUEL_ALIGNMENTFILL_AT_1", 2037, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HIGHPRESSUREFUEL_V1 = Field.create("HIGHPRESSUREFUEL_V1", 2040, FieldType.FLOAT).setBaseOffset(0); + public static final Field HIGHPRESSUREFUEL_VALUE1 = Field.create("HIGHPRESSUREFUEL_VALUE1", 2044, FieldType.FLOAT).setBaseOffset(0); + public static final Field HIGHPRESSUREFUEL_V2 = Field.create("HIGHPRESSUREFUEL_V2", 2048, FieldType.FLOAT).setBaseOffset(0); + public static final Field HIGHPRESSUREFUEL_VALUE2 = Field.create("HIGHPRESSUREFUEL_VALUE2", 2052, FieldType.FLOAT).setBaseOffset(0); + public static final Field LOWPRESSUREFUEL_HWCHANNEL = Field.create("LOWPRESSUREFUEL_HWCHANNEL", 2056, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field LOWPRESSUREFUEL_ALIGNMENTFILL_AT_1 = Field.create("LOWPRESSUREFUEL_ALIGNMENTFILL_AT_1", 2057, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field LOWPRESSUREFUEL_V1 = Field.create("LOWPRESSUREFUEL_V1", 2060, FieldType.FLOAT).setBaseOffset(0); + public static final Field LOWPRESSUREFUEL_VALUE1 = Field.create("LOWPRESSUREFUEL_VALUE1", 2064, FieldType.FLOAT).setBaseOffset(0); + public static final Field LOWPRESSUREFUEL_V2 = Field.create("LOWPRESSUREFUEL_V2", 2068, FieldType.FLOAT).setBaseOffset(0); + public static final Field LOWPRESSUREFUEL_VALUE2 = Field.create("LOWPRESSUREFUEL_VALUE2", 2072, FieldType.FLOAT).setBaseOffset(0); + public static final Field CLTREVLIMITRPMBINS = Field.create("CLTREVLIMITRPMBINS", 2076, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CLTREVLIMITRPM = Field.create("CLTREVLIMITRPM", 2080, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTCURVENAME1 = Field.create("SCRIPTCURVENAME1", 2088, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTCURVENAME2 = Field.create("SCRIPTCURVENAME2", 2104, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTCURVENAME3 = Field.create("SCRIPTCURVENAME3", 2120, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTCURVENAME4 = Field.create("SCRIPTCURVENAME4", 2136, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTCURVENAME5 = Field.create("SCRIPTCURVENAME5", 2152, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTCURVENAME6 = Field.create("SCRIPTCURVENAME6", 2168, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLENAME1 = Field.create("SCRIPTTABLENAME1", 2184, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLENAME2 = Field.create("SCRIPTTABLENAME2", 2200, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLENAME3 = Field.create("SCRIPTTABLENAME3", 2216, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLENAME4 = Field.create("SCRIPTTABLENAME4", 2232, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME1 = Field.create("SCRIPTSETTINGNAME1", 2248, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME2 = Field.create("SCRIPTSETTINGNAME2", 2264, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME3 = Field.create("SCRIPTSETTINGNAME3", 2280, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME4 = Field.create("SCRIPTSETTINGNAME4", 2296, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME5 = Field.create("SCRIPTSETTINGNAME5", 2312, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME6 = Field.create("SCRIPTSETTINGNAME6", 2328, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME7 = Field.create("SCRIPTSETTINGNAME7", 2344, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTSETTINGNAME8 = Field.create("SCRIPTSETTINGNAME8", 2360, 16, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field TCHARGEAIRCOEFMIN = Field.create("TCHARGEAIRCOEFMIN", 2376, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEAIRCOEFMAX = Field.create("TCHARGEAIRCOEFMAX", 2380, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEAIRFLOWMAX = Field.create("TCHARGEAIRFLOWMAX", 2384, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEAIRINCRLIMIT = Field.create("TCHARGEAIRINCRLIMIT", 2388, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCHARGEAIRDECRLIMIT = Field.create("TCHARGEAIRDECRLIMIT", 2392, FieldType.FLOAT).setBaseOffset(0); public static final String[] tChargeMode_e = {"RPM+TPS (Default)", "Air Mass Interpolation", "Table"}; - public static final Field TCHARGEMODE = Field.create("TCHARGEMODE", 2464, FieldType.INT8, tChargeMode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_2465 = Field.create("ALIGNMENTFILL_AT_2465", 2465, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HIP9011GAIN = Field.create("HIP9011GAIN", 2468, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETB_ITERMMIN = Field.create("ETB_ITERMMIN", 2472, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETB_ITERMMAX = Field.create("ETB_ITERMMAX", 2474, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLETIMINGPID_PFACTOR = Field.create("IDLETIMINGPID_PFACTOR", 2476, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLETIMINGPID_IFACTOR = Field.create("IDLETIMINGPID_IFACTOR", 2480, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLETIMINGPID_DFACTOR = Field.create("IDLETIMINGPID_DFACTOR", 2484, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLETIMINGPID_OFFSET = Field.create("IDLETIMINGPID_OFFSET", 2488, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLETIMINGPID_PERIODMS = Field.create("IDLETIMINGPID_PERIODMS", 2490, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLETIMINGPID_MINVALUE = Field.create("IDLETIMINGPID_MINVALUE", 2492, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLETIMINGPID_MAXVALUE = Field.create("IDLETIMINGPID_MAXVALUE", 2494, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBROCEXPAVERAGELENGTH = Field.create("ETBROCEXPAVERAGELENGTH", 2496, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPSACCELFRACTIONPERIOD = Field.create("TPSACCELFRACTIONPERIOD", 2498, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPSACCELFRACTIONDIVISOR = Field.create("TPSACCELFRACTIONDIVISOR", 2500, FieldType.FLOAT).setBaseOffset(0); - public static final Field TLE8888SPIDEVICE = Field.create("TLE8888SPIDEVICE", 2504, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MC33816SPIDEVICE = Field.create("MC33816SPIDEVICE", 2505, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID_ITERMMIN = Field.create("IDLERPMPID_ITERMMIN", 2506, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TLE6240SPIDEVICE = Field.create("TLE6240SPIDEVICE", 2508, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field STOICHRATIOPRIMARY = Field.create("STOICHRATIOPRIMARY", 2509, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field IDLERPMPID_ITERMMAX = Field.create("IDLERPMPID_ITERMMAX", 2510, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBIDLETHROTTLERANGE = Field.create("ETBIDLETHROTTLERANGE", 2512, FieldType.FLOAT).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT1 = Field.create("CYLINDERBANKSELECT1", 2516, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT2 = Field.create("CYLINDERBANKSELECT2", 2517, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT3 = Field.create("CYLINDERBANKSELECT3", 2518, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT4 = Field.create("CYLINDERBANKSELECT4", 2519, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT5 = Field.create("CYLINDERBANKSELECT5", 2520, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT6 = Field.create("CYLINDERBANKSELECT6", 2521, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT7 = Field.create("CYLINDERBANKSELECT7", 2522, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT8 = Field.create("CYLINDERBANKSELECT8", 2523, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT9 = Field.create("CYLINDERBANKSELECT9", 2524, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT10 = Field.create("CYLINDERBANKSELECT10", 2525, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT11 = Field.create("CYLINDERBANKSELECT11", 2526, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CYLINDERBANKSELECT12 = Field.create("CYLINDERBANKSELECT12", 2527, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field PRIMEVALUES = Field.create("PRIMEVALUES", 2528, FieldType.INT8).setScale(5.0).setBaseOffset(0); - public static final Field TRIGGERCOMPCENTERVOLT = Field.create("TRIGGERCOMPCENTERVOLT", 2536, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field TRIGGERCOMPHYSTMIN = Field.create("TRIGGERCOMPHYSTMIN", 2537, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field TRIGGERCOMPHYSTMAX = Field.create("TRIGGERCOMPHYSTMAX", 2538, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field TRIGGERCOMPSENSORSATRPM = Field.create("TRIGGERCOMPSENSORSATRPM", 2539, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field IDLERPMPID2_PFACTOR = Field.create("IDLERPMPID2_PFACTOR", 2540, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLERPMPID2_IFACTOR = Field.create("IDLERPMPID2_IFACTOR", 2544, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLERPMPID2_DFACTOR = Field.create("IDLERPMPID2_DFACTOR", 2548, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLERPMPID2_OFFSET = Field.create("IDLERPMPID2_OFFSET", 2552, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID2_PERIODMS = Field.create("IDLERPMPID2_PERIODMS", 2554, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID2_MINVALUE = Field.create("IDLERPMPID2_MINVALUE", 2556, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IDLERPMPID2_MAXVALUE = Field.create("IDLERPMPID2_MAXVALUE", 2558, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field CANVSSNBCTYPE = Field.create("CANVSSNBCTYPE", 2560, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_2561 = Field.create("ALIGNMENTFILL_AT_2561", 2561, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_PIN = Field.create("GPPWM1_PIN", 2564, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_DUTYIFERROR = Field.create("GPPWM1_DUTYIFERROR", 2566, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_ALIGNMENTFILL_AT_3 = Field.create("GPPWM1_ALIGNMENTFILL_AT_3", 2567, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_PWMFREQUENCY = Field.create("GPPWM1_PWMFREQUENCY", 2568, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_ONABOVEDUTY = Field.create("GPPWM1_ONABOVEDUTY", 2570, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_OFFBELOWDUTY = Field.create("GPPWM1_OFFBELOWDUTY", 2571, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCHARGEMODE = Field.create("TCHARGEMODE", 2396, FieldType.INT8, tChargeMode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_2397 = Field.create("ALIGNMENTFILL_AT_2397", 2397, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ETB_ITERMMIN = Field.create("ETB_ITERMMIN", 2398, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETB_ITERMMAX = Field.create("ETB_ITERMMAX", 2400, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_2402 = Field.create("ALIGNMENTFILL_AT_2402", 2402, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IDLETIMINGPID_PFACTOR = Field.create("IDLETIMINGPID_PFACTOR", 2404, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLETIMINGPID_IFACTOR = Field.create("IDLETIMINGPID_IFACTOR", 2408, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLETIMINGPID_DFACTOR = Field.create("IDLETIMINGPID_DFACTOR", 2412, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLETIMINGPID_OFFSET = Field.create("IDLETIMINGPID_OFFSET", 2416, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLETIMINGPID_PERIODMS = Field.create("IDLETIMINGPID_PERIODMS", 2418, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLETIMINGPID_MINVALUE = Field.create("IDLETIMINGPID_MINVALUE", 2420, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLETIMINGPID_MAXVALUE = Field.create("IDLETIMINGPID_MAXVALUE", 2422, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBROCEXPAVERAGELENGTH = Field.create("ETBROCEXPAVERAGELENGTH", 2424, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPSACCELFRACTIONPERIOD = Field.create("TPSACCELFRACTIONPERIOD", 2426, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPSACCELFRACTIONDIVISOR = Field.create("TPSACCELFRACTIONDIVISOR", 2428, FieldType.FLOAT).setBaseOffset(0); + public static final Field TLE8888SPIDEVICE = Field.create("TLE8888SPIDEVICE", 2432, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MC33816SPIDEVICE = Field.create("MC33816SPIDEVICE", 2433, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID_ITERMMIN = Field.create("IDLERPMPID_ITERMMIN", 2434, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TLE6240SPIDEVICE = Field.create("TLE6240SPIDEVICE", 2436, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field STOICHRATIOPRIMARY = Field.create("STOICHRATIOPRIMARY", 2437, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field IDLERPMPID_ITERMMAX = Field.create("IDLERPMPID_ITERMMAX", 2438, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBIDLETHROTTLERANGE = Field.create("ETBIDLETHROTTLERANGE", 2440, FieldType.FLOAT).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT1 = Field.create("CYLINDERBANKSELECT1", 2444, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT2 = Field.create("CYLINDERBANKSELECT2", 2445, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT3 = Field.create("CYLINDERBANKSELECT3", 2446, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT4 = Field.create("CYLINDERBANKSELECT4", 2447, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT5 = Field.create("CYLINDERBANKSELECT5", 2448, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT6 = Field.create("CYLINDERBANKSELECT6", 2449, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT7 = Field.create("CYLINDERBANKSELECT7", 2450, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT8 = Field.create("CYLINDERBANKSELECT8", 2451, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT9 = Field.create("CYLINDERBANKSELECT9", 2452, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT10 = Field.create("CYLINDERBANKSELECT10", 2453, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT11 = Field.create("CYLINDERBANKSELECT11", 2454, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CYLINDERBANKSELECT12 = Field.create("CYLINDERBANKSELECT12", 2455, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field PRIMEVALUES = Field.create("PRIMEVALUES", 2456, FieldType.INT8).setScale(5.0).setBaseOffset(0); + public static final Field TRIGGERCOMPCENTERVOLT = Field.create("TRIGGERCOMPCENTERVOLT", 2464, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field TRIGGERCOMPHYSTMIN = Field.create("TRIGGERCOMPHYSTMIN", 2465, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field TRIGGERCOMPHYSTMAX = Field.create("TRIGGERCOMPHYSTMAX", 2466, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field TRIGGERCOMPSENSORSATRPM = Field.create("TRIGGERCOMPSENSORSATRPM", 2467, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field IDLERPMPID2_PFACTOR = Field.create("IDLERPMPID2_PFACTOR", 2468, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLERPMPID2_IFACTOR = Field.create("IDLERPMPID2_IFACTOR", 2472, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLERPMPID2_DFACTOR = Field.create("IDLERPMPID2_DFACTOR", 2476, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLERPMPID2_OFFSET = Field.create("IDLERPMPID2_OFFSET", 2480, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID2_PERIODMS = Field.create("IDLERPMPID2_PERIODMS", 2482, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID2_MINVALUE = Field.create("IDLERPMPID2_MINVALUE", 2484, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IDLERPMPID2_MAXVALUE = Field.create("IDLERPMPID2_MAXVALUE", 2486, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field CANVSSNBCTYPE = Field.create("CANVSSNBCTYPE", 2488, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_2489 = Field.create("ALIGNMENTFILL_AT_2489", 2489, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_PIN = Field.create("GPPWM1_PIN", 2492, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_DUTYIFERROR = Field.create("GPPWM1_DUTYIFERROR", 2494, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_ALIGNMENTFILL_AT_3 = Field.create("GPPWM1_ALIGNMENTFILL_AT_3", 2495, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_PWMFREQUENCY = Field.create("GPPWM1_PWMFREQUENCY", 2496, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_ONABOVEDUTY = Field.create("GPPWM1_ONABOVEDUTY", 2498, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_OFFBELOWDUTY = Field.create("GPPWM1_OFFBELOWDUTY", 2499, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final String[] gppwm_channel_e = {"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"}; - public static final Field GPPWM1_LOADAXIS = Field.create("GPPWM1_LOADAXIS", 2572, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_RPMAXIS = Field.create("GPPWM1_RPMAXIS", 2573, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_LOADBINS = Field.create("GPPWM1_LOADBINS", 2574, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field GPPWM1_RPMBINS = Field.create("GPPWM1_RPMBINS", 2590, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM1_TABLE = Field.create("GPPWM1_TABLE", 2606, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field GPPWM1_ALIGNMENTFILL_AT_106 = Field.create("GPPWM1_ALIGNMENTFILL_AT_106", 2670, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_PIN = Field.create("GPPWM2_PIN", 2672, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_DUTYIFERROR = Field.create("GPPWM2_DUTYIFERROR", 2674, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_ALIGNMENTFILL_AT_3 = Field.create("GPPWM2_ALIGNMENTFILL_AT_3", 2675, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_PWMFREQUENCY = Field.create("GPPWM2_PWMFREQUENCY", 2676, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_ONABOVEDUTY = Field.create("GPPWM2_ONABOVEDUTY", 2678, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_OFFBELOWDUTY = Field.create("GPPWM2_OFFBELOWDUTY", 2679, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_LOADAXIS = Field.create("GPPWM2_LOADAXIS", 2680, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_RPMAXIS = Field.create("GPPWM2_RPMAXIS", 2681, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_LOADBINS = Field.create("GPPWM2_LOADBINS", 2682, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field GPPWM2_RPMBINS = Field.create("GPPWM2_RPMBINS", 2698, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM2_TABLE = Field.create("GPPWM2_TABLE", 2714, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field GPPWM2_ALIGNMENTFILL_AT_106 = Field.create("GPPWM2_ALIGNMENTFILL_AT_106", 2778, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_PIN = Field.create("GPPWM3_PIN", 2780, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_DUTYIFERROR = Field.create("GPPWM3_DUTYIFERROR", 2782, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_ALIGNMENTFILL_AT_3 = Field.create("GPPWM3_ALIGNMENTFILL_AT_3", 2783, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_PWMFREQUENCY = Field.create("GPPWM3_PWMFREQUENCY", 2784, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_ONABOVEDUTY = Field.create("GPPWM3_ONABOVEDUTY", 2786, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_OFFBELOWDUTY = Field.create("GPPWM3_OFFBELOWDUTY", 2787, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_LOADAXIS = Field.create("GPPWM3_LOADAXIS", 2788, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_RPMAXIS = Field.create("GPPWM3_RPMAXIS", 2789, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_LOADBINS = Field.create("GPPWM3_LOADBINS", 2790, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field GPPWM3_RPMBINS = Field.create("GPPWM3_RPMBINS", 2806, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM3_TABLE = Field.create("GPPWM3_TABLE", 2822, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field GPPWM3_ALIGNMENTFILL_AT_106 = Field.create("GPPWM3_ALIGNMENTFILL_AT_106", 2886, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_PIN = Field.create("GPPWM4_PIN", 2888, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_DUTYIFERROR = Field.create("GPPWM4_DUTYIFERROR", 2890, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_ALIGNMENTFILL_AT_3 = Field.create("GPPWM4_ALIGNMENTFILL_AT_3", 2891, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_PWMFREQUENCY = Field.create("GPPWM4_PWMFREQUENCY", 2892, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_ONABOVEDUTY = Field.create("GPPWM4_ONABOVEDUTY", 2894, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_OFFBELOWDUTY = Field.create("GPPWM4_OFFBELOWDUTY", 2895, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_LOADAXIS = Field.create("GPPWM4_LOADAXIS", 2896, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_RPMAXIS = Field.create("GPPWM4_RPMAXIS", 2897, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_LOADBINS = Field.create("GPPWM4_LOADBINS", 2898, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field GPPWM4_RPMBINS = Field.create("GPPWM4_RPMBINS", 2914, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GPPWM4_TABLE = Field.create("GPPWM4_TABLE", 2930, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field GPPWM4_ALIGNMENTFILL_AT_106 = Field.create("GPPWM4_ALIGNMENTFILL_AT_106", 2994, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MC33_I_BOOST = Field.create("MC33_I_BOOST", 2996, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_I_PEAK = Field.create("MC33_I_PEAK", 2998, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_I_HOLD = Field.create("MC33_I_HOLD", 3000, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_MAX_BOOST = Field.create("MC33_T_MAX_BOOST", 3002, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_PEAK_OFF = Field.create("MC33_T_PEAK_OFF", 3004, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_PEAK_TOT = Field.create("MC33_T_PEAK_TOT", 3006, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_BYPASS = Field.create("MC33_T_BYPASS", 3008, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_HOLD_OFF = Field.create("MC33_T_HOLD_OFF", 3010, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field MC33_T_HOLD_TOT = Field.create("MC33_T_HOLD_TOT", 3012, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TCUUPSHIFTBUTTONPINMODE = Field.create("TCUUPSHIFTBUTTONPINMODE", 3014, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCUDOWNSHIFTBUTTONPINMODE = Field.create("TCUDOWNSHIFTBUTTONPINMODE", 3015, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ACSWITCHMODE = Field.create("ACSWITCHMODE", 3016, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID_MODE1 = Field.create("TCU_SOLENOID_MODE1", 3017, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID_MODE2 = Field.create("TCU_SOLENOID_MODE2", 3018, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID_MODE3 = Field.create("TCU_SOLENOID_MODE3", 3019, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID_MODE4 = Field.create("TCU_SOLENOID_MODE4", 3020, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID_MODE5 = Field.create("TCU_SOLENOID_MODE5", 3021, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_SOLENOID_MODE6 = Field.create("TCU_SOLENOID_MODE6", 3022, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field KNOCKBASENOISE = Field.create("KNOCKBASENOISE", 3023, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3039 = Field.create("ALIGNMENTFILL_AT_3039", 3039, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM1 = Field.create("TRIGGERGAPOVERRIDEFROM1", 3040, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM2 = Field.create("TRIGGERGAPOVERRIDEFROM2", 3044, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM3 = Field.create("TRIGGERGAPOVERRIDEFROM3", 3048, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM4 = Field.create("TRIGGERGAPOVERRIDEFROM4", 3052, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM5 = Field.create("TRIGGERGAPOVERRIDEFROM5", 3056, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM6 = Field.create("TRIGGERGAPOVERRIDEFROM6", 3060, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM7 = Field.create("TRIGGERGAPOVERRIDEFROM7", 3064, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM8 = Field.create("TRIGGERGAPOVERRIDEFROM8", 3068, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM9 = Field.create("TRIGGERGAPOVERRIDEFROM9", 3072, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM10 = Field.create("TRIGGERGAPOVERRIDEFROM10", 3076, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM11 = Field.create("TRIGGERGAPOVERRIDEFROM11", 3080, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM12 = Field.create("TRIGGERGAPOVERRIDEFROM12", 3084, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM13 = Field.create("TRIGGERGAPOVERRIDEFROM13", 3088, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM14 = Field.create("TRIGGERGAPOVERRIDEFROM14", 3092, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM15 = Field.create("TRIGGERGAPOVERRIDEFROM15", 3096, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM16 = Field.create("TRIGGERGAPOVERRIDEFROM16", 3100, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM17 = Field.create("TRIGGERGAPOVERRIDEFROM17", 3104, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDEFROM18 = Field.create("TRIGGERGAPOVERRIDEFROM18", 3108, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO1 = Field.create("TRIGGERGAPOVERRIDETO1", 3112, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO2 = Field.create("TRIGGERGAPOVERRIDETO2", 3116, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO3 = Field.create("TRIGGERGAPOVERRIDETO3", 3120, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO4 = Field.create("TRIGGERGAPOVERRIDETO4", 3124, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO5 = Field.create("TRIGGERGAPOVERRIDETO5", 3128, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO6 = Field.create("TRIGGERGAPOVERRIDETO6", 3132, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO7 = Field.create("TRIGGERGAPOVERRIDETO7", 3136, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO8 = Field.create("TRIGGERGAPOVERRIDETO8", 3140, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO9 = Field.create("TRIGGERGAPOVERRIDETO9", 3144, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO10 = Field.create("TRIGGERGAPOVERRIDETO10", 3148, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO11 = Field.create("TRIGGERGAPOVERRIDETO11", 3152, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO12 = Field.create("TRIGGERGAPOVERRIDETO12", 3156, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO13 = Field.create("TRIGGERGAPOVERRIDETO13", 3160, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO14 = Field.create("TRIGGERGAPOVERRIDETO14", 3164, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO15 = Field.create("TRIGGERGAPOVERRIDETO15", 3168, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO16 = Field.create("TRIGGERGAPOVERRIDETO16", 3172, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO17 = Field.create("TRIGGERGAPOVERRIDETO17", 3176, FieldType.FLOAT).setBaseOffset(0); - public static final Field TRIGGERGAPOVERRIDETO18 = Field.create("TRIGGERGAPOVERRIDETO18", 3180, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAXCAMPHASERESOLVERPM = Field.create("MAXCAMPHASERESOLVERPM", 3184, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field DFCODELAY = Field.create("DFCODELAY", 3185, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field ACDELAY = Field.create("ACDELAY", 3186, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3187 = Field.create("ALIGNMENTFILL_AT_3187", 3187, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FORDINJECTORSMALLPULSEBREAKPOINT = Field.create("FORDINJECTORSMALLPULSEBREAKPOINT", 3188, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field TPSTSPCORRVALUES = Field.create("TPSTSPCORRVALUES", 3190, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field ETBJAMINTEGRATORLIMIT = Field.create("ETBJAMINTEGRATORLIMIT", 3194, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPCAMLOBES = Field.create("HPFPCAMLOBES", 3195, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_LOADAXIS = Field.create("GPPWM1_LOADAXIS", 2500, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_RPMAXIS = Field.create("GPPWM1_RPMAXIS", 2501, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_LOADBINS = Field.create("GPPWM1_LOADBINS", 2502, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field GPPWM1_RPMBINS = Field.create("GPPWM1_RPMBINS", 2518, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM1_TABLE = Field.create("GPPWM1_TABLE", 2534, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field GPPWM1_ALIGNMENTFILL_AT_106 = Field.create("GPPWM1_ALIGNMENTFILL_AT_106", 2598, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_PIN = Field.create("GPPWM2_PIN", 2600, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_DUTYIFERROR = Field.create("GPPWM2_DUTYIFERROR", 2602, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_ALIGNMENTFILL_AT_3 = Field.create("GPPWM2_ALIGNMENTFILL_AT_3", 2603, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_PWMFREQUENCY = Field.create("GPPWM2_PWMFREQUENCY", 2604, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_ONABOVEDUTY = Field.create("GPPWM2_ONABOVEDUTY", 2606, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_OFFBELOWDUTY = Field.create("GPPWM2_OFFBELOWDUTY", 2607, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_LOADAXIS = Field.create("GPPWM2_LOADAXIS", 2608, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_RPMAXIS = Field.create("GPPWM2_RPMAXIS", 2609, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_LOADBINS = Field.create("GPPWM2_LOADBINS", 2610, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field GPPWM2_RPMBINS = Field.create("GPPWM2_RPMBINS", 2626, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM2_TABLE = Field.create("GPPWM2_TABLE", 2642, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field GPPWM2_ALIGNMENTFILL_AT_106 = Field.create("GPPWM2_ALIGNMENTFILL_AT_106", 2706, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_PIN = Field.create("GPPWM3_PIN", 2708, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_DUTYIFERROR = Field.create("GPPWM3_DUTYIFERROR", 2710, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_ALIGNMENTFILL_AT_3 = Field.create("GPPWM3_ALIGNMENTFILL_AT_3", 2711, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_PWMFREQUENCY = Field.create("GPPWM3_PWMFREQUENCY", 2712, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_ONABOVEDUTY = Field.create("GPPWM3_ONABOVEDUTY", 2714, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_OFFBELOWDUTY = Field.create("GPPWM3_OFFBELOWDUTY", 2715, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_LOADAXIS = Field.create("GPPWM3_LOADAXIS", 2716, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_RPMAXIS = Field.create("GPPWM3_RPMAXIS", 2717, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_LOADBINS = Field.create("GPPWM3_LOADBINS", 2718, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field GPPWM3_RPMBINS = Field.create("GPPWM3_RPMBINS", 2734, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM3_TABLE = Field.create("GPPWM3_TABLE", 2750, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field GPPWM3_ALIGNMENTFILL_AT_106 = Field.create("GPPWM3_ALIGNMENTFILL_AT_106", 2814, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_PIN = Field.create("GPPWM4_PIN", 2816, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_DUTYIFERROR = Field.create("GPPWM4_DUTYIFERROR", 2818, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_ALIGNMENTFILL_AT_3 = Field.create("GPPWM4_ALIGNMENTFILL_AT_3", 2819, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_PWMFREQUENCY = Field.create("GPPWM4_PWMFREQUENCY", 2820, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_ONABOVEDUTY = Field.create("GPPWM4_ONABOVEDUTY", 2822, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_OFFBELOWDUTY = Field.create("GPPWM4_OFFBELOWDUTY", 2823, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_LOADAXIS = Field.create("GPPWM4_LOADAXIS", 2824, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_RPMAXIS = Field.create("GPPWM4_RPMAXIS", 2825, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_LOADBINS = Field.create("GPPWM4_LOADBINS", 2826, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field GPPWM4_RPMBINS = Field.create("GPPWM4_RPMBINS", 2842, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GPPWM4_TABLE = Field.create("GPPWM4_TABLE", 2858, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field GPPWM4_ALIGNMENTFILL_AT_106 = Field.create("GPPWM4_ALIGNMENTFILL_AT_106", 2922, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MC33_I_BOOST = Field.create("MC33_I_BOOST", 2924, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_I_PEAK = Field.create("MC33_I_PEAK", 2926, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_I_HOLD = Field.create("MC33_I_HOLD", 2928, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_MAX_BOOST = Field.create("MC33_T_MAX_BOOST", 2930, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_PEAK_OFF = Field.create("MC33_T_PEAK_OFF", 2932, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_PEAK_TOT = Field.create("MC33_T_PEAK_TOT", 2934, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_BYPASS = Field.create("MC33_T_BYPASS", 2936, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_HOLD_OFF = Field.create("MC33_T_HOLD_OFF", 2938, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field MC33_T_HOLD_TOT = Field.create("MC33_T_HOLD_TOT", 2940, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TCUUPSHIFTBUTTONPINMODE = Field.create("TCUUPSHIFTBUTTONPINMODE", 2942, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCUDOWNSHIFTBUTTONPINMODE = Field.create("TCUDOWNSHIFTBUTTONPINMODE", 2943, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ACSWITCHMODE = Field.create("ACSWITCHMODE", 2944, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID_MODE1 = Field.create("TCU_SOLENOID_MODE1", 2945, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID_MODE2 = Field.create("TCU_SOLENOID_MODE2", 2946, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID_MODE3 = Field.create("TCU_SOLENOID_MODE3", 2947, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID_MODE4 = Field.create("TCU_SOLENOID_MODE4", 2948, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID_MODE5 = Field.create("TCU_SOLENOID_MODE5", 2949, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_SOLENOID_MODE6 = Field.create("TCU_SOLENOID_MODE6", 2950, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field KNOCKBASENOISE = Field.create("KNOCKBASENOISE", 2951, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_2967 = Field.create("ALIGNMENTFILL_AT_2967", 2967, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM1 = Field.create("TRIGGERGAPOVERRIDEFROM1", 2968, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM2 = Field.create("TRIGGERGAPOVERRIDEFROM2", 2972, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM3 = Field.create("TRIGGERGAPOVERRIDEFROM3", 2976, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM4 = Field.create("TRIGGERGAPOVERRIDEFROM4", 2980, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM5 = Field.create("TRIGGERGAPOVERRIDEFROM5", 2984, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM6 = Field.create("TRIGGERGAPOVERRIDEFROM6", 2988, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM7 = Field.create("TRIGGERGAPOVERRIDEFROM7", 2992, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM8 = Field.create("TRIGGERGAPOVERRIDEFROM8", 2996, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM9 = Field.create("TRIGGERGAPOVERRIDEFROM9", 3000, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM10 = Field.create("TRIGGERGAPOVERRIDEFROM10", 3004, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM11 = Field.create("TRIGGERGAPOVERRIDEFROM11", 3008, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM12 = Field.create("TRIGGERGAPOVERRIDEFROM12", 3012, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM13 = Field.create("TRIGGERGAPOVERRIDEFROM13", 3016, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM14 = Field.create("TRIGGERGAPOVERRIDEFROM14", 3020, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM15 = Field.create("TRIGGERGAPOVERRIDEFROM15", 3024, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM16 = Field.create("TRIGGERGAPOVERRIDEFROM16", 3028, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM17 = Field.create("TRIGGERGAPOVERRIDEFROM17", 3032, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDEFROM18 = Field.create("TRIGGERGAPOVERRIDEFROM18", 3036, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO1 = Field.create("TRIGGERGAPOVERRIDETO1", 3040, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO2 = Field.create("TRIGGERGAPOVERRIDETO2", 3044, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO3 = Field.create("TRIGGERGAPOVERRIDETO3", 3048, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO4 = Field.create("TRIGGERGAPOVERRIDETO4", 3052, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO5 = Field.create("TRIGGERGAPOVERRIDETO5", 3056, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO6 = Field.create("TRIGGERGAPOVERRIDETO6", 3060, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO7 = Field.create("TRIGGERGAPOVERRIDETO7", 3064, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO8 = Field.create("TRIGGERGAPOVERRIDETO8", 3068, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO9 = Field.create("TRIGGERGAPOVERRIDETO9", 3072, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO10 = Field.create("TRIGGERGAPOVERRIDETO10", 3076, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO11 = Field.create("TRIGGERGAPOVERRIDETO11", 3080, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO12 = Field.create("TRIGGERGAPOVERRIDETO12", 3084, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO13 = Field.create("TRIGGERGAPOVERRIDETO13", 3088, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO14 = Field.create("TRIGGERGAPOVERRIDETO14", 3092, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO15 = Field.create("TRIGGERGAPOVERRIDETO15", 3096, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO16 = Field.create("TRIGGERGAPOVERRIDETO16", 3100, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO17 = Field.create("TRIGGERGAPOVERRIDETO17", 3104, FieldType.FLOAT).setBaseOffset(0); + public static final Field TRIGGERGAPOVERRIDETO18 = Field.create("TRIGGERGAPOVERRIDETO18", 3108, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAXCAMPHASERESOLVERPM = Field.create("MAXCAMPHASERESOLVERPM", 3112, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field DFCODELAY = Field.create("DFCODELAY", 3113, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field ACDELAY = Field.create("ACDELAY", 3114, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3115 = Field.create("ALIGNMENTFILL_AT_3115", 3115, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FORDINJECTORSMALLPULSEBREAKPOINT = Field.create("FORDINJECTORSMALLPULSEBREAKPOINT", 3116, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field TPSTSPCORRVALUES = Field.create("TPSTSPCORRVALUES", 3118, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field ETBJAMINTEGRATORLIMIT = Field.create("ETBJAMINTEGRATORLIMIT", 3122, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPCAMLOBES = Field.create("HPFPCAMLOBES", 3123, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final String[] hpfp_cam_e = {"NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2"}; - public static final Field HPFPCAM = Field.create("HPFPCAM", 3196, FieldType.INT8, hpfp_cam_e).setScale(1.0).setBaseOffset(0); - public static final Field HPFPPEAKPOS = Field.create("HPFPPEAKPOS", 3197, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPMINANGLE = Field.create("HPFPMINANGLE", 3198, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3199 = Field.create("ALIGNMENTFILL_AT_3199", 3199, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPPUMPVOLUME = Field.create("HPFPPUMPVOLUME", 3200, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field HPFPACTIVATIONANGLE = Field.create("HPFPACTIVATIONANGLE", 3202, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ISSFILTERRECIPROCAL = Field.create("ISSFILTERRECIPROCAL", 3203, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPPIDP = Field.create("HPFPPIDP", 3204, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field HPFPPIDI = Field.create("HPFPPIDI", 3206, FieldType.INT16).setScale(1.0E-5).setBaseOffset(0); - public static final Field HPFPTARGETDECAY = Field.create("HPFPTARGETDECAY", 3208, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field HPFPLOBEPROFILEQUANTITYBINS = Field.create("HPFPLOBEPROFILEQUANTITYBINS", 3210, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field HPFPLOBEPROFILEANGLE = Field.create("HPFPLOBEPROFILEANGLE", 3226, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field HPFPDEADTIMEVOLTSBINS = Field.create("HPFPDEADTIMEVOLTSBINS", 3242, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPDEADTIMEMS = Field.create("HPFPDEADTIMEMS", 3250, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field HPFPTARGET = Field.create("HPFPTARGET", 3266, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field HPFPTARGETLOADBINS = Field.create("HPFPTARGETLOADBINS", 3466, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field HPFPTARGETRPMBINS = Field.create("HPFPTARGETRPMBINS", 3486, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field HPFPCOMPENSATION = Field.create("HPFPCOMPENSATION", 3496, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HPFPCOMPENSATIONLOADBINS = Field.create("HPFPCOMPENSATIONLOADBINS", 3596, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field HPFPCOMPENSATIONRPMBINS = Field.create("HPFPCOMPENSATIONRPMBINS", 3616, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field STEPPER_RAW_OUTPUT1 = Field.create("STEPPER_RAW_OUTPUT1", 3626, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field STEPPER_RAW_OUTPUT2 = Field.create("STEPPER_RAW_OUTPUT2", 3628, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field STEPPER_RAW_OUTPUT3 = Field.create("STEPPER_RAW_OUTPUT3", 3630, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field STEPPER_RAW_OUTPUT4 = Field.create("STEPPER_RAW_OUTPUT4", 3632, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field GEARRATIO1 = Field.create("GEARRATIO1", 3634, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO2 = Field.create("GEARRATIO2", 3636, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO3 = Field.create("GEARRATIO3", 3638, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO4 = Field.create("GEARRATIO4", 3640, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO5 = Field.create("GEARRATIO5", 3642, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO6 = Field.create("GEARRATIO6", 3644, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO7 = Field.create("GEARRATIO7", 3646, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field GEARRATIO8 = Field.create("GEARRATIO8", 3648, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field VVTACTIVATIONDELAYMS = Field.create("VVTACTIVATIONDELAYMS", 3650, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field WWCLTBINS = Field.create("WWCLTBINS", 3652, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field WWTAUCLTVALUES = Field.create("WWTAUCLTVALUES", 3660, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field WWBETACLTVALUES = Field.create("WWBETACLTVALUES", 3668, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field WWMAPBINS = Field.create("WWMAPBINS", 3676, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field WWTAUMAPVALUES = Field.create("WWTAUMAPVALUES", 3684, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field WWBETAMAPVALUES = Field.create("WWBETAMAPVALUES", 3692, FieldType.INT8).setScale(0.01).setBaseOffset(0); - public static final Field TORQUETABLE = Field.create("TORQUETABLE", 3700, FieldType.INT8).setScale(10.0).setBaseOffset(0); - public static final Field TORQUERPMBINS = Field.create("TORQUERPMBINS", 3736, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TORQUELOADBINS = Field.create("TORQUELOADBINS", 3748, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field GEARCONTROLLERMODE = Field.create("GEARCONTROLLERMODE", 3760, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TRANSMISSIONCONTROLLERMODE = Field.create("TRANSMISSIONCONTROLLERMODE", 3761, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3762 = Field.create("ALIGNMENTFILL_AT_3762", 3762, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXLINEAR1_HWCHANNEL = Field.create("AUXLINEAR1_HWCHANNEL", 3764, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXLINEAR1_ALIGNMENTFILL_AT_1 = Field.create("AUXLINEAR1_ALIGNMENTFILL_AT_1", 3765, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXLINEAR1_V1 = Field.create("AUXLINEAR1_V1", 3768, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR1_VALUE1 = Field.create("AUXLINEAR1_VALUE1", 3772, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR1_V2 = Field.create("AUXLINEAR1_V2", 3776, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR1_VALUE2 = Field.create("AUXLINEAR1_VALUE2", 3780, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR2_HWCHANNEL = Field.create("AUXLINEAR2_HWCHANNEL", 3784, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field AUXLINEAR2_ALIGNMENTFILL_AT_1 = Field.create("AUXLINEAR2_ALIGNMENTFILL_AT_1", 3785, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field AUXLINEAR2_V1 = Field.create("AUXLINEAR2_V1", 3788, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR2_VALUE1 = Field.create("AUXLINEAR2_VALUE1", 3792, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR2_V2 = Field.create("AUXLINEAR2_V2", 3796, FieldType.FLOAT).setBaseOffset(0); - public static final Field AUXLINEAR2_VALUE2 = Field.create("AUXLINEAR2_VALUE2", 3800, FieldType.FLOAT).setBaseOffset(0); - public static final Field TCU_TCC_ONOFF_SOLENOID = Field.create("TCU_TCC_ONOFF_SOLENOID", 3804, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCC_ONOFF_SOLENOID_MODE = Field.create("TCU_TCC_ONOFF_SOLENOID_MODE", 3806, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3807 = Field.create("ALIGNMENTFILL_AT_3807", 3807, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCC_PWM_SOLENOID = Field.create("TCU_TCC_PWM_SOLENOID", 3808, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCC_PWM_SOLENOID_MODE = Field.create("TCU_TCC_PWM_SOLENOID_MODE", 3810, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3811 = Field.create("ALIGNMENTFILL_AT_3811", 3811, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCC_PWM_SOLENOID_FREQ = Field.create("TCU_TCC_PWM_SOLENOID_FREQ", 3812, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PC_SOLENOID_PIN = Field.create("TCU_PC_SOLENOID_PIN", 3814, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PC_SOLENOID_PIN_MODE = Field.create("TCU_PC_SOLENOID_PIN_MODE", 3816, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3817 = Field.create("ALIGNMENTFILL_AT_3817", 3817, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PC_SOLENOID_FREQ = Field.create("TCU_PC_SOLENOID_FREQ", 3818, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TCU_32_SOLENOID_PIN = Field.create("TCU_32_SOLENOID_PIN", 3820, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); - public static final Field TCU_32_SOLENOID_PIN_MODE = Field.create("TCU_32_SOLENOID_PIN_MODE", 3822, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3823 = Field.create("ALIGNMENTFILL_AT_3823", 3823, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_32_SOLENOID_FREQ = Field.create("TCU_32_SOLENOID_FREQ", 3824, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3826 = Field.create("ALIGNMENTFILL_AT_3826", 3826, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ETBMINIMUMPOSITION = Field.create("ETBMINIMUMPOSITION", 3828, FieldType.FLOAT).setBaseOffset(0); - public static final Field TUNEHIDINGKEY = Field.create("TUNEHIDINGKEY", 3832, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VINNUMBER = Field.create("VINNUMBER", 3834, 17, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3851 = Field.create("ALIGNMENTFILL_AT_3851", 3851, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field HIGHSPEEDOFFSETS = Field.create("HIGHSPEEDOFFSETS", 3852, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ETBDUTYSHUTDOWNTHRESHOLD = Field.create("ETBDUTYSHUTDOWNTHRESHOLD", 3916, FieldType.FLOAT).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS1 = Field.create("LUADIGITALINPUTPINS1", 3920, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS2 = Field.create("LUADIGITALINPUTPINS2", 3922, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS3 = Field.create("LUADIGITALINPUTPINS3", 3924, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS4 = Field.create("LUADIGITALINPUTPINS4", 3926, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS5 = Field.create("LUADIGITALINPUTPINS5", 3928, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS6 = Field.create("LUADIGITALINPUTPINS6", 3930, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS7 = Field.create("LUADIGITALINPUTPINS7", 3932, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINS8 = Field.create("LUADIGITALINPUTPINS8", 3934, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); - public static final Field TPSTSPCORRVALUESBINS = Field.create("TPSTSPCORRVALUESBINS", 3936, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field ALSMINRPM = Field.create("ALSMINRPM", 3940, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALSMAXRPM = Field.create("ALSMAXRPM", 3942, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALSMAXDURATION = Field.create("ALSMAXDURATION", 3944, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALSMINCLT = Field.create("ALSMINCLT", 3946, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALSMAXCLT = Field.create("ALSMAXCLT", 3947, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALSMINTIMEBETWEEN = Field.create("ALSMINTIMEBETWEEN", 3948, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALSETBPOSITION = Field.create("ALSETBPOSITION", 3949, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ACRELAYALTERNATORDUTYADDER = Field.create("ACRELAYALTERNATORDUTYADDER", 3950, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field INSTANTRPMRANGE = Field.create("INSTANTRPMRANGE", 3951, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field UNUSEDA11LIGNMENTFILL_AT_33 = Field.create("UNUSEDA11LIGNMENTFILL_AT_33", 3952, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPCAM = Field.create("HPFPCAM", 3124, FieldType.INT8, hpfp_cam_e).setScale(1.0).setBaseOffset(0); + public static final Field HPFPPEAKPOS = Field.create("HPFPPEAKPOS", 3125, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPMINANGLE = Field.create("HPFPMINANGLE", 3126, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3127 = Field.create("ALIGNMENTFILL_AT_3127", 3127, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPPUMPVOLUME = Field.create("HPFPPUMPVOLUME", 3128, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field HPFPACTIVATIONANGLE = Field.create("HPFPACTIVATIONANGLE", 3130, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ISSFILTERRECIPROCAL = Field.create("ISSFILTERRECIPROCAL", 3131, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPPIDP = Field.create("HPFPPIDP", 3132, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field HPFPPIDI = Field.create("HPFPPIDI", 3134, FieldType.INT16).setScale(1.0E-5).setBaseOffset(0); + public static final Field HPFPTARGETDECAY = Field.create("HPFPTARGETDECAY", 3136, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field HPFPLOBEPROFILEQUANTITYBINS = Field.create("HPFPLOBEPROFILEQUANTITYBINS", 3138, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field HPFPLOBEPROFILEANGLE = Field.create("HPFPLOBEPROFILEANGLE", 3154, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field HPFPDEADTIMEVOLTSBINS = Field.create("HPFPDEADTIMEVOLTSBINS", 3170, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPDEADTIMEMS = Field.create("HPFPDEADTIMEMS", 3178, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field HPFPTARGET = Field.create("HPFPTARGET", 3194, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field HPFPTARGETLOADBINS = Field.create("HPFPTARGETLOADBINS", 3394, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field HPFPTARGETRPMBINS = Field.create("HPFPTARGETRPMBINS", 3414, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field HPFPCOMPENSATION = Field.create("HPFPCOMPENSATION", 3424, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HPFPCOMPENSATIONLOADBINS = Field.create("HPFPCOMPENSATIONLOADBINS", 3524, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field HPFPCOMPENSATIONRPMBINS = Field.create("HPFPCOMPENSATIONRPMBINS", 3544, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field STEPPER_RAW_OUTPUT1 = Field.create("STEPPER_RAW_OUTPUT1", 3554, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field STEPPER_RAW_OUTPUT2 = Field.create("STEPPER_RAW_OUTPUT2", 3556, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field STEPPER_RAW_OUTPUT3 = Field.create("STEPPER_RAW_OUTPUT3", 3558, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field STEPPER_RAW_OUTPUT4 = Field.create("STEPPER_RAW_OUTPUT4", 3560, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field GEARRATIO1 = Field.create("GEARRATIO1", 3562, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO2 = Field.create("GEARRATIO2", 3564, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO3 = Field.create("GEARRATIO3", 3566, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO4 = Field.create("GEARRATIO4", 3568, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO5 = Field.create("GEARRATIO5", 3570, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO6 = Field.create("GEARRATIO6", 3572, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO7 = Field.create("GEARRATIO7", 3574, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field GEARRATIO8 = Field.create("GEARRATIO8", 3576, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field VVTACTIVATIONDELAYMS = Field.create("VVTACTIVATIONDELAYMS", 3578, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field WWCLTBINS = Field.create("WWCLTBINS", 3580, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field WWTAUCLTVALUES = Field.create("WWTAUCLTVALUES", 3588, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field WWBETACLTVALUES = Field.create("WWBETACLTVALUES", 3596, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field WWMAPBINS = Field.create("WWMAPBINS", 3604, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field WWTAUMAPVALUES = Field.create("WWTAUMAPVALUES", 3612, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field WWBETAMAPVALUES = Field.create("WWBETAMAPVALUES", 3620, FieldType.INT8).setScale(0.01).setBaseOffset(0); + public static final Field TORQUETABLE = Field.create("TORQUETABLE", 3628, FieldType.INT8).setScale(10.0).setBaseOffset(0); + public static final Field TORQUERPMBINS = Field.create("TORQUERPMBINS", 3664, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TORQUELOADBINS = Field.create("TORQUELOADBINS", 3676, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field GEARCONTROLLERMODE = Field.create("GEARCONTROLLERMODE", 3688, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TRANSMISSIONCONTROLLERMODE = Field.create("TRANSMISSIONCONTROLLERMODE", 3689, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3690 = Field.create("ALIGNMENTFILL_AT_3690", 3690, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXLINEAR1_HWCHANNEL = Field.create("AUXLINEAR1_HWCHANNEL", 3692, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXLINEAR1_ALIGNMENTFILL_AT_1 = Field.create("AUXLINEAR1_ALIGNMENTFILL_AT_1", 3693, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXLINEAR1_V1 = Field.create("AUXLINEAR1_V1", 3696, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR1_VALUE1 = Field.create("AUXLINEAR1_VALUE1", 3700, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR1_V2 = Field.create("AUXLINEAR1_V2", 3704, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR1_VALUE2 = Field.create("AUXLINEAR1_VALUE2", 3708, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR2_HWCHANNEL = Field.create("AUXLINEAR2_HWCHANNEL", 3712, FieldType.INT8, adc_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field AUXLINEAR2_ALIGNMENTFILL_AT_1 = Field.create("AUXLINEAR2_ALIGNMENTFILL_AT_1", 3713, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field AUXLINEAR2_V1 = Field.create("AUXLINEAR2_V1", 3716, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR2_VALUE1 = Field.create("AUXLINEAR2_VALUE1", 3720, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR2_V2 = Field.create("AUXLINEAR2_V2", 3724, FieldType.FLOAT).setBaseOffset(0); + public static final Field AUXLINEAR2_VALUE2 = Field.create("AUXLINEAR2_VALUE2", 3728, FieldType.FLOAT).setBaseOffset(0); + public static final Field TCU_TCC_ONOFF_SOLENOID = Field.create("TCU_TCC_ONOFF_SOLENOID", 3732, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCC_ONOFF_SOLENOID_MODE = Field.create("TCU_TCC_ONOFF_SOLENOID_MODE", 3734, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3735 = Field.create("ALIGNMENTFILL_AT_3735", 3735, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCC_PWM_SOLENOID = Field.create("TCU_TCC_PWM_SOLENOID", 3736, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCC_PWM_SOLENOID_MODE = Field.create("TCU_TCC_PWM_SOLENOID_MODE", 3738, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3739 = Field.create("ALIGNMENTFILL_AT_3739", 3739, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCC_PWM_SOLENOID_FREQ = Field.create("TCU_TCC_PWM_SOLENOID_FREQ", 3740, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PC_SOLENOID_PIN = Field.create("TCU_PC_SOLENOID_PIN", 3742, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PC_SOLENOID_PIN_MODE = Field.create("TCU_PC_SOLENOID_PIN_MODE", 3744, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3745 = Field.create("ALIGNMENTFILL_AT_3745", 3745, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PC_SOLENOID_FREQ = Field.create("TCU_PC_SOLENOID_FREQ", 3746, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TCU_32_SOLENOID_PIN = Field.create("TCU_32_SOLENOID_PIN", 3748, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); + public static final Field TCU_32_SOLENOID_PIN_MODE = Field.create("TCU_32_SOLENOID_PIN_MODE", 3750, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3751 = Field.create("ALIGNMENTFILL_AT_3751", 3751, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_32_SOLENOID_FREQ = Field.create("TCU_32_SOLENOID_FREQ", 3752, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3754 = Field.create("ALIGNMENTFILL_AT_3754", 3754, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ETBMINIMUMPOSITION = Field.create("ETBMINIMUMPOSITION", 3756, FieldType.FLOAT).setBaseOffset(0); + public static final Field TUNEHIDINGKEY = Field.create("TUNEHIDINGKEY", 3760, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VINNUMBER = Field.create("VINNUMBER", 3762, 17, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3779 = Field.create("ALIGNMENTFILL_AT_3779", 3779, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field HIGHSPEEDOFFSETS = Field.create("HIGHSPEEDOFFSETS", 3780, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ETBDUTYSHUTDOWNTHRESHOLD = Field.create("ETBDUTYSHUTDOWNTHRESHOLD", 3844, FieldType.FLOAT).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS1 = Field.create("LUADIGITALINPUTPINS1", 3848, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS2 = Field.create("LUADIGITALINPUTPINS2", 3850, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS3 = Field.create("LUADIGITALINPUTPINS3", 3852, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS4 = Field.create("LUADIGITALINPUTPINS4", 3854, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS5 = Field.create("LUADIGITALINPUTPINS5", 3856, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS6 = Field.create("LUADIGITALINPUTPINS6", 3858, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS7 = Field.create("LUADIGITALINPUTPINS7", 3860, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINS8 = Field.create("LUADIGITALINPUTPINS8", 3862, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); + public static final Field TPSTSPCORRVALUESBINS = Field.create("TPSTSPCORRVALUESBINS", 3864, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field ALSMINRPM = Field.create("ALSMINRPM", 3868, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALSMAXRPM = Field.create("ALSMAXRPM", 3870, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALSMAXDURATION = Field.create("ALSMAXDURATION", 3872, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALSMINCLT = Field.create("ALSMINCLT", 3874, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALSMAXCLT = Field.create("ALSMAXCLT", 3875, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALSMINTIMEBETWEEN = Field.create("ALSMINTIMEBETWEEN", 3876, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALSETBPOSITION = Field.create("ALSETBPOSITION", 3877, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ACRELAYALTERNATORDUTYADDER = Field.create("ACRELAYALTERNATORDUTYADDER", 3878, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field INSTANTRPMRANGE = Field.create("INSTANTRPMRANGE", 3879, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field UNUSEDA11LIGNMENTFILL_AT_33 = Field.create("UNUSEDA11LIGNMENTFILL_AT_33", 3880, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final String[] SentEtbType = {"None", "GM type 1", "Ford type 1"}; - public static final Field SENTETBTYPE = Field.create("SENTETBTYPE", 3953, FieldType.INT8, SentEtbType).setScale(1.0).setBaseOffset(0); - public static final Field ALIGNMENTFILL_AT_3954 = Field.create("ALIGNMENTFILL_AT_3954", 3954, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALSIDLEADD = Field.create("ALSIDLEADD", 3956, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field ALSETBADD = Field.create("ALSETBADD", 3960, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field ALSSKIPRATIO = Field.create("ALSSKIPRATIO", 3964, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field ALSMAXDRIVERTHROTTLEINTENT = Field.create("ALSMAXDRIVERTHROTTLEINTENT", 3968, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ALSACTIVATEPINMODE = Field.create("ALSACTIVATEPINMODE", 3969, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field TPSSECONDARYMAXIMUM = Field.create("TPSSECONDARYMAXIMUM", 3970, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field PPSSECONDARYMAXIMUM = Field.create("PPSSECONDARYMAXIMUM", 3971, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES1 = Field.create("LUADIGITALINPUTPINMODES1", 3972, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES2 = Field.create("LUADIGITALINPUTPINMODES2", 3973, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES3 = Field.create("LUADIGITALINPUTPINMODES3", 3974, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES4 = Field.create("LUADIGITALINPUTPINMODES4", 3975, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES5 = Field.create("LUADIGITALINPUTPINMODES5", 3976, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES6 = Field.create("LUADIGITALINPUTPINMODES6", 3977, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES7 = Field.create("LUADIGITALINPUTPINMODES7", 3978, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field LUADIGITALINPUTPINMODES8 = Field.create("LUADIGITALINPUTPINMODES8", 3979, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); - public static final Field MAINUNUSEDEND = Field.create("MAINUNUSEDEND", 3980, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field ETBBIASBINS = Field.create("ETBBIASBINS", 4076, FieldType.FLOAT).setBaseOffset(0); - public static final Field ETBBIASVALUES = Field.create("ETBBIASVALUES", 4108, FieldType.FLOAT).setBaseOffset(0); - public static final Field IACPIDMULTTABLE = Field.create("IACPIDMULTTABLE", 4140, FieldType.INT8).setScale(0.05).setBaseOffset(0); - public static final Field IACPIDMULTLOADBINS = Field.create("IACPIDMULTLOADBINS", 4204, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IACPIDMULTRPMBINS = Field.create("IACPIDMULTRPMBINS", 4212, FieldType.INT8).setScale(10.0).setBaseOffset(0); - public static final Field SPARKDWELLRPMBINS = Field.create("SPARKDWELLRPMBINS", 4220, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SPARKDWELLVALUES = Field.create("SPARKDWELLVALUES", 4236, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field CLTIDLERPMBINS = Field.create("CLTIDLERPMBINS", 4252, FieldType.INT8).setScale(2.0).setBaseOffset(0); - public static final Field CLTIDLERPM = Field.create("CLTIDLERPM", 4268, FieldType.INT8).setScale(20.0).setBaseOffset(0); - public static final Field CLTTIMINGBINS = Field.create("CLTTIMINGBINS", 4284, FieldType.FLOAT).setBaseOffset(0); - public static final Field CLTTIMINGEXTRA = Field.create("CLTTIMINGEXTRA", 4316, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE1BINS = Field.create("SCRIPTCURVE1BINS", 4348, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE1 = Field.create("SCRIPTCURVE1", 4412, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE2BINS = Field.create("SCRIPTCURVE2BINS", 4476, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE2 = Field.create("SCRIPTCURVE2", 4540, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE3BINS = Field.create("SCRIPTCURVE3BINS", 4604, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE3 = Field.create("SCRIPTCURVE3", 4636, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE4BINS = Field.create("SCRIPTCURVE4BINS", 4668, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE4 = Field.create("SCRIPTCURVE4", 4700, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE5BINS = Field.create("SCRIPTCURVE5BINS", 4732, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE5 = Field.create("SCRIPTCURVE5", 4764, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE6BINS = Field.create("SCRIPTCURVE6BINS", 4796, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTCURVE6 = Field.create("SCRIPTCURVE6", 4828, FieldType.FLOAT).setBaseOffset(0); - public static final Field BAROCORRPRESSUREBINS = Field.create("BAROCORRPRESSUREBINS", 4860, FieldType.FLOAT).setBaseOffset(0); - public static final Field BAROCORRRPMBINS = Field.create("BAROCORRRPMBINS", 4876, FieldType.FLOAT).setBaseOffset(0); - public static final Field BAROCORRTABLE = Field.create("BAROCORRTABLE", 4892, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGTPSCOEF = Field.create("CRANKINGTPSCOEF", 4956, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGTPSBINS = Field.create("CRANKINGTPSBINS", 4988, FieldType.FLOAT).setBaseOffset(0); - public static final Field NARROWTOWIDEOXYGENBINS = Field.create("NARROWTOWIDEOXYGENBINS", 5020, FieldType.FLOAT).setBaseOffset(0); - public static final Field NARROWTOWIDEOXYGEN = Field.create("NARROWTOWIDEOXYGEN", 5052, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGADVANCEBINS = Field.create("CRANKINGADVANCEBINS", 5084, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field CRANKINGADVANCE = Field.create("CRANKINGADVANCE", 5092, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field IACCOASTINGRPMBINS = Field.create("IACCOASTINGRPMBINS", 5100, FieldType.INT8).setScale(100.0).setBaseOffset(0); - public static final Field IACCOASTING = Field.create("IACCOASTING", 5116, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field WARNING_MESSAGE = Field.create("WARNING_MESSAGE", 5132, 120, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field AFTERSTARTCOOLANTBINS = Field.create("AFTERSTARTCOOLANTBINS", 5252, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFTERSTARTHOLDTIME = Field.create("AFTERSTARTHOLDTIME", 5284, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFTERSTARTENRICH = Field.create("AFTERSTARTENRICH", 5316, FieldType.FLOAT).setBaseOffset(0); - public static final Field AFTERSTARTDECAYTIME = Field.create("AFTERSTARTDECAYTIME", 5348, FieldType.FLOAT).setBaseOffset(0); - public static final Field BOOSTTABLEOPENLOOP = Field.create("BOOSTTABLEOPENLOOP", 5380, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field BOOSTRPMBINS = Field.create("BOOSTRPMBINS", 5444, FieldType.INT8).setScale(100.0).setBaseOffset(0); - public static final Field BOOSTTABLECLOSEDLOOP = Field.create("BOOSTTABLECLOSEDLOOP", 5452, FieldType.INT8).setScale(2.0).setBaseOffset(0); - public static final Field BOOSTTPSBINS = Field.create("BOOSTTPSBINS", 5516, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field PEDALTOTPSTABLE = Field.create("PEDALTOTPSTABLE", 5524, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field PEDALTOTPSPEDALBINS = Field.create("PEDALTOTPSPEDALBINS", 5588, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field PEDALTOTPSRPMBINS = Field.create("PEDALTOTPSRPMBINS", 5596, FieldType.INT8).setScale(100.0).setBaseOffset(0); - public static final Field CLTCRANKINGCORRBINS = Field.create("CLTCRANKINGCORRBINS", 5604, FieldType.FLOAT).setBaseOffset(0); - public static final Field CLTCRANKINGCORR = Field.create("CLTCRANKINGCORR", 5636, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLEADVANCEBINS = Field.create("IDLEADVANCEBINS", 5668, FieldType.INT8).setScale(50.0).setBaseOffset(0); - public static final Field IDLEADVANCE = Field.create("IDLEADVANCE", 5676, FieldType.FLOAT).setBaseOffset(0); - public static final Field IDLEVERPMBINS = Field.create("IDLEVERPMBINS", 5708, FieldType.INT8).setScale(10.0).setBaseOffset(0); - public static final Field IDLEVELOADBINS = Field.create("IDLEVELOADBINS", 5712, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IDLEVETABLE = Field.create("IDLEVETABLE", 5716, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field LUASCRIPT = Field.create("LUASCRIPT", 5748, 8000, FieldType.STRING).setScale(1.0).setBaseOffset(0); - public static final Field CLTFUELCORRBINS = Field.create("CLTFUELCORRBINS", 13748, FieldType.FLOAT).setBaseOffset(0); - public static final Field CLTFUELCORR = Field.create("CLTFUELCORR", 13812, FieldType.FLOAT).setBaseOffset(0); - public static final Field IATFUELCORRBINS = Field.create("IATFUELCORRBINS", 13876, FieldType.FLOAT).setBaseOffset(0); - public static final Field IATFUELCORR = Field.create("IATFUELCORR", 13940, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGFUELCOEF = Field.create("CRANKINGFUELCOEF", 14004, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGFUELBINS = Field.create("CRANKINGFUELBINS", 14036, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGCYCLECOEF = Field.create("CRANKINGCYCLECOEF", 14068, FieldType.FLOAT).setBaseOffset(0); - public static final Field CRANKINGCYCLEBINS = Field.create("CRANKINGCYCLEBINS", 14100, FieldType.FLOAT).setBaseOffset(0); - public static final Field CLTIDLECORRBINS = Field.create("CLTIDLECORRBINS", 14132, FieldType.FLOAT).setBaseOffset(0); - public static final Field CLTIDLECORR = Field.create("CLTIDLECORR", 14196, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAFDECODING = Field.create("MAFDECODING", 14260, FieldType.FLOAT).setBaseOffset(0); - public static final Field MAFDECODINGBINS = Field.create("MAFDECODINGBINS", 15284, FieldType.FLOAT).setBaseOffset(0); - public static final Field IGNITIONIATCORRTABLE = Field.create("IGNITIONIATCORRTABLE", 16308, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field IGNITIONIATCORRTEMPBINS = Field.create("IGNITIONIATCORRTEMPBINS", 16372, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONIATCORRLOADBINS = Field.create("IGNITIONIATCORRLOADBINS", 16380, FieldType.INT8).setScale(5.0).setBaseOffset(0); - public static final Field INJECTIONPHASE = Field.create("INJECTIONPHASE", 16388, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field INJPHASELOADBINS = Field.create("INJPHASELOADBINS", 16900, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field INJPHASERPMBINS = Field.create("INJPHASERPMBINS", 16932, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TCUSOLENOIDTABLE = Field.create("TCUSOLENOIDTABLE", 16964, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAPESTIMATETABLE = Field.create("MAPESTIMATETABLE", 17024, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field MAPESTIMATETPSBINS = Field.create("MAPESTIMATETPSBINS", 17536, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field MAPESTIMATERPMBINS = Field.create("MAPESTIMATERPMBINS", 17568, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VVTTABLE1 = Field.create("VVTTABLE1", 17600, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VVTTABLE1LOADBINS = Field.create("VVTTABLE1LOADBINS", 17664, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VVTTABLE1RPMBINS = Field.create("VVTTABLE1RPMBINS", 17680, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VVTTABLE2 = Field.create("VVTTABLE2", 17696, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VVTTABLE2LOADBINS = Field.create("VVTTABLE2LOADBINS", 17760, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VVTTABLE2RPMBINS = Field.create("VVTTABLE2RPMBINS", 17776, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONTABLE = Field.create("IGNITIONTABLE", 17792, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNITIONLOADBINS = Field.create("IGNITIONLOADBINS", 18304, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNITIONRPMBINS = Field.create("IGNITIONRPMBINS", 18336, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VETABLE = Field.create("VETABLE", 18368, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VELOADBINS = Field.create("VELOADBINS", 18880, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VERPMBINS = Field.create("VERPMBINS", 18912, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field LAMBDATABLE = Field.create("LAMBDATABLE", 18944, FieldType.INT8).setScale(0.006802721088435374).setBaseOffset(0); - public static final Field LAMBDALOADBINS = Field.create("LAMBDALOADBINS", 19200, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field LAMBDARPMBINS = Field.create("LAMBDARPMBINS", 19232, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPSTPSACCELTABLE = Field.create("TPSTPSACCELTABLE", 19264, FieldType.FLOAT).setBaseOffset(0); - public static final Field TPSTPSACCELFROMRPMBINS = Field.create("TPSTPSACCELFROMRPMBINS", 19520, FieldType.FLOAT).setBaseOffset(0); - public static final Field TPSTPSACCELTORPMBINS = Field.create("TPSTPSACCELTORPMBINS", 19552, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTTABLE1 = Field.create("SCRIPTTABLE1", 19584, FieldType.FLOAT).setBaseOffset(0); - public static final Field SCRIPTTABLE1LOADBINS = Field.create("SCRIPTTABLE1LOADBINS", 19840, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE1RPMBINS = Field.create("SCRIPTTABLE1RPMBINS", 19856, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE2 = Field.create("SCRIPTTABLE2", 19872, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE2LOADBINS = Field.create("SCRIPTTABLE2LOADBINS", 19936, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE2RPMBINS = Field.create("SCRIPTTABLE2RPMBINS", 19952, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE3 = Field.create("SCRIPTTABLE3", 19968, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE3LOADBINS = Field.create("SCRIPTTABLE3LOADBINS", 20032, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE3RPMBINS = Field.create("SCRIPTTABLE3RPMBINS", 20048, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE4 = Field.create("SCRIPTTABLE4", 20064, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE4LOADBINS = Field.create("SCRIPTTABLE4LOADBINS", 20128, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SCRIPTTABLE4RPMBINS = Field.create("SCRIPTTABLE4RPMBINS", 20144, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNTRIMLOADBINS = Field.create("IGNTRIMLOADBINS", 20160, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNTRIMRPMBINS = Field.create("IGNTRIMRPMBINS", 20168, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNTRIMS1_TABLE = Field.create("IGNTRIMS1_TABLE", 20176, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS2_TABLE = Field.create("IGNTRIMS2_TABLE", 20192, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS3_TABLE = Field.create("IGNTRIMS3_TABLE", 20208, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS4_TABLE = Field.create("IGNTRIMS4_TABLE", 20224, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS5_TABLE = Field.create("IGNTRIMS5_TABLE", 20240, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS6_TABLE = Field.create("IGNTRIMS6_TABLE", 20256, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS7_TABLE = Field.create("IGNTRIMS7_TABLE", 20272, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS8_TABLE = Field.create("IGNTRIMS8_TABLE", 20288, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS9_TABLE = Field.create("IGNTRIMS9_TABLE", 20304, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS10_TABLE = Field.create("IGNTRIMS10_TABLE", 20320, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS11_TABLE = Field.create("IGNTRIMS11_TABLE", 20336, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field IGNTRIMS12_TABLE = Field.create("IGNTRIMS12_TABLE", 20352, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMLOADBINS = Field.create("FUELTRIMLOADBINS", 20368, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field FUELTRIMRPMBINS = Field.create("FUELTRIMRPMBINS", 20376, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field FUELTRIMS1_TABLE = Field.create("FUELTRIMS1_TABLE", 20384, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS2_TABLE = Field.create("FUELTRIMS2_TABLE", 20400, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS3_TABLE = Field.create("FUELTRIMS3_TABLE", 20416, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS4_TABLE = Field.create("FUELTRIMS4_TABLE", 20432, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS5_TABLE = Field.create("FUELTRIMS5_TABLE", 20448, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS6_TABLE = Field.create("FUELTRIMS6_TABLE", 20464, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS7_TABLE = Field.create("FUELTRIMS7_TABLE", 20480, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS8_TABLE = Field.create("FUELTRIMS8_TABLE", 20496, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS9_TABLE = Field.create("FUELTRIMS9_TABLE", 20512, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS10_TABLE = Field.create("FUELTRIMS10_TABLE", 20528, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS11_TABLE = Field.create("FUELTRIMS11_TABLE", 20544, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field FUELTRIMS12_TABLE = Field.create("FUELTRIMS12_TABLE", 20560, FieldType.INT8).setScale(0.2).setBaseOffset(0); - public static final Field CRANKINGFUELCOEFE100 = Field.create("CRANKINGFUELCOEFE100", 20576, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field TCU_PCAIRMASSBINS = Field.create("TCU_PCAIRMASSBINS", 20592, FieldType.INT8).setScale(0.02).setBaseOffset(0); - public static final Field TCU_PCVALSR = Field.create("TCU_PCVALSR", 20600, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALSN = Field.create("TCU_PCVALSN", 20608, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS1 = Field.create("TCU_PCVALS1", 20616, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS2 = Field.create("TCU_PCVALS2", 20624, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS3 = Field.create("TCU_PCVALS3", 20632, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS4 = Field.create("TCU_PCVALS4", 20640, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS12 = Field.create("TCU_PCVALS12", 20648, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS23 = Field.create("TCU_PCVALS23", 20656, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS34 = Field.create("TCU_PCVALS34", 20664, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS21 = Field.create("TCU_PCVALS21", 20672, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS32 = Field.create("TCU_PCVALS32", 20680, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_PCVALS43 = Field.create("TCU_PCVALS43", 20688, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCCTPSBINS = Field.create("TCU_TCCTPSBINS", 20696, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCCLOCKSPEED = Field.create("TCU_TCCLOCKSPEED", 20704, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_TCCUNLOCKSPEED = Field.create("TCU_TCCUNLOCKSPEED", 20712, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_32SPEEDBINS = Field.create("TCU_32SPEEDBINS", 20720, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TCU_32VALS = Field.create("TCU_32VALS", 20728, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field THROTTLE2TRIMTABLE = Field.create("THROTTLE2TRIMTABLE", 20736, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field THROTTLE2TRIMTPSBINS = Field.create("THROTTLE2TRIMTPSBINS", 20772, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field THROTTLE2TRIMRPMBINS = Field.create("THROTTLE2TRIMRPMBINS", 20778, FieldType.INT8).setScale(100.0).setBaseOffset(0); - public static final Field MAXKNOCKRETARDTABLE = Field.create("MAXKNOCKRETARDTABLE", 20784, FieldType.INT8).setScale(0.25).setBaseOffset(0); - public static final Field MAXKNOCKRETARDLOADBINS = Field.create("MAXKNOCKRETARDLOADBINS", 20820, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAXKNOCKRETARDRPMBINS = Field.create("MAXKNOCKRETARDRPMBINS", 20826, FieldType.INT8).setScale(100.0).setBaseOffset(0); - public static final Field ALSTIMINGRETARDTABLE = Field.create("ALSTIMINGRETARDTABLE", 20832, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field ALSIGNRETARDLOADBINS = Field.create("ALSIGNRETARDLOADBINS", 20864, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALSIGNRETARDRPMBINS = Field.create("ALSIGNRETARDRPMBINS", 20872, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALSFUELADJUSTMENT = Field.create("ALSFUELADJUSTMENT", 20880, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field ALSFUELADJUSTMENTLOADBINS = Field.create("ALSFUELADJUSTMENTLOADBINS", 20912, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ALSFUELADJUSTMENTRPMBINS = Field.create("ALSFUELADJUSTMENTRPMBINS", 20920, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS1_TABLE = Field.create("IGNBLENDS1_TABLE", 20928, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS1_LOADBINS = Field.create("IGNBLENDS1_LOADBINS", 21056, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS1_RPMBINS = Field.create("IGNBLENDS1_RPMBINS", 21072, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS1_BLENDPARAMETER = Field.create("IGNBLENDS1_BLENDPARAMETER", 21088, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS1_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS1_ALIGNMENTFILL_AT_161", 21089, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS1_BLENDBINS = Field.create("IGNBLENDS1_BLENDBINS", 21090, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS1_BLENDVALUES = Field.create("IGNBLENDS1_BLENDVALUES", 21106, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field IGNBLENDS1_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS1_ALIGNMENTFILL_AT_186", 21114, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS2_TABLE = Field.create("IGNBLENDS2_TABLE", 21116, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS2_LOADBINS = Field.create("IGNBLENDS2_LOADBINS", 21244, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS2_RPMBINS = Field.create("IGNBLENDS2_RPMBINS", 21260, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS2_BLENDPARAMETER = Field.create("IGNBLENDS2_BLENDPARAMETER", 21276, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS2_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS2_ALIGNMENTFILL_AT_161", 21277, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS2_BLENDBINS = Field.create("IGNBLENDS2_BLENDBINS", 21278, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS2_BLENDVALUES = Field.create("IGNBLENDS2_BLENDVALUES", 21294, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field IGNBLENDS2_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS2_ALIGNMENTFILL_AT_186", 21302, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS3_TABLE = Field.create("IGNBLENDS3_TABLE", 21304, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS3_LOADBINS = Field.create("IGNBLENDS3_LOADBINS", 21432, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS3_RPMBINS = Field.create("IGNBLENDS3_RPMBINS", 21448, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS3_BLENDPARAMETER = Field.create("IGNBLENDS3_BLENDPARAMETER", 21464, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS3_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS3_ALIGNMENTFILL_AT_161", 21465, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS3_BLENDBINS = Field.create("IGNBLENDS3_BLENDBINS", 21466, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS3_BLENDVALUES = Field.create("IGNBLENDS3_BLENDVALUES", 21482, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field IGNBLENDS3_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS3_ALIGNMENTFILL_AT_186", 21490, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS4_TABLE = Field.create("IGNBLENDS4_TABLE", 21492, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS4_LOADBINS = Field.create("IGNBLENDS4_LOADBINS", 21620, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS4_RPMBINS = Field.create("IGNBLENDS4_RPMBINS", 21636, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS4_BLENDPARAMETER = Field.create("IGNBLENDS4_BLENDPARAMETER", 21652, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS4_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS4_ALIGNMENTFILL_AT_161", 21653, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field IGNBLENDS4_BLENDBINS = Field.create("IGNBLENDS4_BLENDBINS", 21654, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field IGNBLENDS4_BLENDVALUES = Field.create("IGNBLENDS4_BLENDVALUES", 21670, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field IGNBLENDS4_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS4_ALIGNMENTFILL_AT_186", 21678, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS1_TABLE = Field.create("VEBLENDS1_TABLE", 21680, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS1_LOADBINS = Field.create("VEBLENDS1_LOADBINS", 21808, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS1_RPMBINS = Field.create("VEBLENDS1_RPMBINS", 21824, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS1_BLENDPARAMETER = Field.create("VEBLENDS1_BLENDPARAMETER", 21840, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS1_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS1_ALIGNMENTFILL_AT_161", 21841, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS1_BLENDBINS = Field.create("VEBLENDS1_BLENDBINS", 21842, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS1_BLENDVALUES = Field.create("VEBLENDS1_BLENDVALUES", 21858, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field VEBLENDS1_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS1_ALIGNMENTFILL_AT_186", 21866, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS2_TABLE = Field.create("VEBLENDS2_TABLE", 21868, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS2_LOADBINS = Field.create("VEBLENDS2_LOADBINS", 21996, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS2_RPMBINS = Field.create("VEBLENDS2_RPMBINS", 22012, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS2_BLENDPARAMETER = Field.create("VEBLENDS2_BLENDPARAMETER", 22028, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS2_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS2_ALIGNMENTFILL_AT_161", 22029, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS2_BLENDBINS = Field.create("VEBLENDS2_BLENDBINS", 22030, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS2_BLENDVALUES = Field.create("VEBLENDS2_BLENDVALUES", 22046, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field VEBLENDS2_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS2_ALIGNMENTFILL_AT_186", 22054, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS3_TABLE = Field.create("VEBLENDS3_TABLE", 22056, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS3_LOADBINS = Field.create("VEBLENDS3_LOADBINS", 22184, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS3_RPMBINS = Field.create("VEBLENDS3_RPMBINS", 22200, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS3_BLENDPARAMETER = Field.create("VEBLENDS3_BLENDPARAMETER", 22216, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS3_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS3_ALIGNMENTFILL_AT_161", 22217, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS3_BLENDBINS = Field.create("VEBLENDS3_BLENDBINS", 22218, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS3_BLENDVALUES = Field.create("VEBLENDS3_BLENDVALUES", 22234, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field VEBLENDS3_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS3_ALIGNMENTFILL_AT_186", 22242, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS4_TABLE = Field.create("VEBLENDS4_TABLE", 22244, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS4_LOADBINS = Field.create("VEBLENDS4_LOADBINS", 22372, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS4_RPMBINS = Field.create("VEBLENDS4_RPMBINS", 22388, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS4_BLENDPARAMETER = Field.create("VEBLENDS4_BLENDPARAMETER", 22404, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS4_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS4_ALIGNMENTFILL_AT_161", 22405, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VEBLENDS4_BLENDBINS = Field.create("VEBLENDS4_BLENDBINS", 22406, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field VEBLENDS4_BLENDVALUES = Field.create("VEBLENDS4_BLENDVALUES", 22422, FieldType.INT8).setScale(0.5).setBaseOffset(0); - public static final Field VEBLENDS4_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS4_ALIGNMENTFILL_AT_186", 22430, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SENTETBTYPE = Field.create("SENTETBTYPE", 3881, FieldType.INT8, SentEtbType).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_3882 = Field.create("ALIGNMENTFILL_AT_3882", 3882, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALSIDLEADD = Field.create("ALSIDLEADD", 3884, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field ALSETBADD = Field.create("ALSETBADD", 3888, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field ALSSKIPRATIO = Field.create("ALSSKIPRATIO", 3892, FieldType.INT).setScale(1.0).setBaseOffset(0); + public static final Field ALSMAXDRIVERTHROTTLEINTENT = Field.create("ALSMAXDRIVERTHROTTLEINTENT", 3896, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALSACTIVATEPINMODE = Field.create("ALSACTIVATEPINMODE", 3897, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field TPSSECONDARYMAXIMUM = Field.create("TPSSECONDARYMAXIMUM", 3898, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field PPSSECONDARYMAXIMUM = Field.create("PPSSECONDARYMAXIMUM", 3899, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES1 = Field.create("LUADIGITALINPUTPINMODES1", 3900, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES2 = Field.create("LUADIGITALINPUTPINMODES2", 3901, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES3 = Field.create("LUADIGITALINPUTPINMODES3", 3902, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES4 = Field.create("LUADIGITALINPUTPINMODES4", 3903, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES5 = Field.create("LUADIGITALINPUTPINMODES5", 3904, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES6 = Field.create("LUADIGITALINPUTPINMODES6", 3905, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES7 = Field.create("LUADIGITALINPUTPINMODES7", 3906, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field LUADIGITALINPUTPINMODES8 = Field.create("LUADIGITALINPUTPINMODES8", 3907, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); + public static final Field MAINUNUSEDEND = Field.create("MAINUNUSEDEND", 3908, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ETBBIASBINS = Field.create("ETBBIASBINS", 4004, FieldType.FLOAT).setBaseOffset(0); + public static final Field ETBBIASVALUES = Field.create("ETBBIASVALUES", 4036, FieldType.FLOAT).setBaseOffset(0); + public static final Field IACPIDMULTTABLE = Field.create("IACPIDMULTTABLE", 4068, FieldType.INT8).setScale(0.05).setBaseOffset(0); + public static final Field IACPIDMULTLOADBINS = Field.create("IACPIDMULTLOADBINS", 4132, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IACPIDMULTRPMBINS = Field.create("IACPIDMULTRPMBINS", 4140, FieldType.INT8).setScale(10.0).setBaseOffset(0); + public static final Field SPARKDWELLRPMBINS = Field.create("SPARKDWELLRPMBINS", 4148, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SPARKDWELLVALUES = Field.create("SPARKDWELLVALUES", 4164, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field CLTIDLERPMBINS = Field.create("CLTIDLERPMBINS", 4180, FieldType.INT8).setScale(2.0).setBaseOffset(0); + public static final Field CLTIDLERPM = Field.create("CLTIDLERPM", 4196, FieldType.INT8).setScale(20.0).setBaseOffset(0); + public static final Field CLTTIMINGBINS = Field.create("CLTTIMINGBINS", 4212, FieldType.FLOAT).setBaseOffset(0); + public static final Field CLTTIMINGEXTRA = Field.create("CLTTIMINGEXTRA", 4244, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE1BINS = Field.create("SCRIPTCURVE1BINS", 4276, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE1 = Field.create("SCRIPTCURVE1", 4340, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE2BINS = Field.create("SCRIPTCURVE2BINS", 4404, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE2 = Field.create("SCRIPTCURVE2", 4468, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE3BINS = Field.create("SCRIPTCURVE3BINS", 4532, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE3 = Field.create("SCRIPTCURVE3", 4564, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE4BINS = Field.create("SCRIPTCURVE4BINS", 4596, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE4 = Field.create("SCRIPTCURVE4", 4628, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE5BINS = Field.create("SCRIPTCURVE5BINS", 4660, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE5 = Field.create("SCRIPTCURVE5", 4692, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE6BINS = Field.create("SCRIPTCURVE6BINS", 4724, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTCURVE6 = Field.create("SCRIPTCURVE6", 4756, FieldType.FLOAT).setBaseOffset(0); + public static final Field BAROCORRPRESSUREBINS = Field.create("BAROCORRPRESSUREBINS", 4788, FieldType.FLOAT).setBaseOffset(0); + public static final Field BAROCORRRPMBINS = Field.create("BAROCORRRPMBINS", 4804, FieldType.FLOAT).setBaseOffset(0); + public static final Field BAROCORRTABLE = Field.create("BAROCORRTABLE", 4820, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGTPSCOEF = Field.create("CRANKINGTPSCOEF", 4884, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGTPSBINS = Field.create("CRANKINGTPSBINS", 4916, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGADVANCEBINS = Field.create("CRANKINGADVANCEBINS", 4948, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field CRANKINGADVANCE = Field.create("CRANKINGADVANCE", 4956, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field IACCOASTINGRPMBINS = Field.create("IACCOASTINGRPMBINS", 4964, FieldType.INT8).setScale(100.0).setBaseOffset(0); + public static final Field IACCOASTING = Field.create("IACCOASTING", 4980, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field WARNING_MESSAGE = Field.create("WARNING_MESSAGE", 4996, 120, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field AFTERSTARTCOOLANTBINS = Field.create("AFTERSTARTCOOLANTBINS", 5116, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFTERSTARTHOLDTIME = Field.create("AFTERSTARTHOLDTIME", 5148, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFTERSTARTENRICH = Field.create("AFTERSTARTENRICH", 5180, FieldType.FLOAT).setBaseOffset(0); + public static final Field AFTERSTARTDECAYTIME = Field.create("AFTERSTARTDECAYTIME", 5212, FieldType.FLOAT).setBaseOffset(0); + public static final Field BOOSTTABLEOPENLOOP = Field.create("BOOSTTABLEOPENLOOP", 5244, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field BOOSTRPMBINS = Field.create("BOOSTRPMBINS", 5308, FieldType.INT8).setScale(100.0).setBaseOffset(0); + public static final Field BOOSTTABLECLOSEDLOOP = Field.create("BOOSTTABLECLOSEDLOOP", 5316, FieldType.INT8).setScale(2.0).setBaseOffset(0); + public static final Field BOOSTTPSBINS = Field.create("BOOSTTPSBINS", 5380, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field PEDALTOTPSTABLE = Field.create("PEDALTOTPSTABLE", 5388, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field PEDALTOTPSPEDALBINS = Field.create("PEDALTOTPSPEDALBINS", 5452, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field PEDALTOTPSRPMBINS = Field.create("PEDALTOTPSRPMBINS", 5460, FieldType.INT8).setScale(100.0).setBaseOffset(0); + public static final Field CLTCRANKINGCORRBINS = Field.create("CLTCRANKINGCORRBINS", 5468, FieldType.FLOAT).setBaseOffset(0); + public static final Field CLTCRANKINGCORR = Field.create("CLTCRANKINGCORR", 5500, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLEADVANCEBINS = Field.create("IDLEADVANCEBINS", 5532, FieldType.INT8).setScale(50.0).setBaseOffset(0); + public static final Field IDLEADVANCE = Field.create("IDLEADVANCE", 5540, FieldType.FLOAT).setBaseOffset(0); + public static final Field IDLEVERPMBINS = Field.create("IDLEVERPMBINS", 5572, FieldType.INT8).setScale(10.0).setBaseOffset(0); + public static final Field IDLEVELOADBINS = Field.create("IDLEVELOADBINS", 5576, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IDLEVETABLE = Field.create("IDLEVETABLE", 5580, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field LUASCRIPT = Field.create("LUASCRIPT", 5612, 8000, FieldType.STRING).setScale(1.0).setBaseOffset(0); + public static final Field CLTFUELCORRBINS = Field.create("CLTFUELCORRBINS", 13612, FieldType.FLOAT).setBaseOffset(0); + public static final Field CLTFUELCORR = Field.create("CLTFUELCORR", 13676, FieldType.FLOAT).setBaseOffset(0); + public static final Field IATFUELCORRBINS = Field.create("IATFUELCORRBINS", 13740, FieldType.FLOAT).setBaseOffset(0); + public static final Field IATFUELCORR = Field.create("IATFUELCORR", 13804, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGFUELCOEF = Field.create("CRANKINGFUELCOEF", 13868, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGFUELBINS = Field.create("CRANKINGFUELBINS", 13900, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGCYCLECOEF = Field.create("CRANKINGCYCLECOEF", 13932, FieldType.FLOAT).setBaseOffset(0); + public static final Field CRANKINGCYCLEBINS = Field.create("CRANKINGCYCLEBINS", 13964, FieldType.FLOAT).setBaseOffset(0); + public static final Field CLTIDLECORRBINS = Field.create("CLTIDLECORRBINS", 13996, FieldType.FLOAT).setBaseOffset(0); + public static final Field CLTIDLECORR = Field.create("CLTIDLECORR", 14060, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAFDECODING = Field.create("MAFDECODING", 14124, FieldType.FLOAT).setBaseOffset(0); + public static final Field MAFDECODINGBINS = Field.create("MAFDECODINGBINS", 15148, FieldType.FLOAT).setBaseOffset(0); + public static final Field IGNITIONIATCORRTABLE = Field.create("IGNITIONIATCORRTABLE", 16172, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field IGNITIONIATCORRTEMPBINS = Field.create("IGNITIONIATCORRTEMPBINS", 16236, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONIATCORRLOADBINS = Field.create("IGNITIONIATCORRLOADBINS", 16244, FieldType.INT8).setScale(5.0).setBaseOffset(0); + public static final Field INJECTIONPHASE = Field.create("INJECTIONPHASE", 16252, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field INJPHASELOADBINS = Field.create("INJPHASELOADBINS", 16764, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field INJPHASERPMBINS = Field.create("INJPHASERPMBINS", 16796, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TCUSOLENOIDTABLE = Field.create("TCUSOLENOIDTABLE", 16828, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAPESTIMATETABLE = Field.create("MAPESTIMATETABLE", 16888, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field MAPESTIMATETPSBINS = Field.create("MAPESTIMATETPSBINS", 17400, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field MAPESTIMATERPMBINS = Field.create("MAPESTIMATERPMBINS", 17432, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VVTTABLE1 = Field.create("VVTTABLE1", 17464, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VVTTABLE1LOADBINS = Field.create("VVTTABLE1LOADBINS", 17528, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VVTTABLE1RPMBINS = Field.create("VVTTABLE1RPMBINS", 17544, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VVTTABLE2 = Field.create("VVTTABLE2", 17560, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VVTTABLE2LOADBINS = Field.create("VVTTABLE2LOADBINS", 17624, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VVTTABLE2RPMBINS = Field.create("VVTTABLE2RPMBINS", 17640, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONTABLE = Field.create("IGNITIONTABLE", 17656, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNITIONLOADBINS = Field.create("IGNITIONLOADBINS", 18168, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNITIONRPMBINS = Field.create("IGNITIONRPMBINS", 18200, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VETABLE = Field.create("VETABLE", 18232, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VELOADBINS = Field.create("VELOADBINS", 18744, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VERPMBINS = Field.create("VERPMBINS", 18776, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field LAMBDATABLE = Field.create("LAMBDATABLE", 18808, FieldType.INT8).setScale(0.006802721088435374).setBaseOffset(0); + public static final Field LAMBDALOADBINS = Field.create("LAMBDALOADBINS", 19064, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field LAMBDARPMBINS = Field.create("LAMBDARPMBINS", 19096, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPSTPSACCELTABLE = Field.create("TPSTPSACCELTABLE", 19128, FieldType.FLOAT).setBaseOffset(0); + public static final Field TPSTPSACCELFROMRPMBINS = Field.create("TPSTPSACCELFROMRPMBINS", 19384, FieldType.FLOAT).setBaseOffset(0); + public static final Field TPSTPSACCELTORPMBINS = Field.create("TPSTPSACCELTORPMBINS", 19416, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTTABLE1 = Field.create("SCRIPTTABLE1", 19448, FieldType.FLOAT).setBaseOffset(0); + public static final Field SCRIPTTABLE1LOADBINS = Field.create("SCRIPTTABLE1LOADBINS", 19704, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE1RPMBINS = Field.create("SCRIPTTABLE1RPMBINS", 19720, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE2 = Field.create("SCRIPTTABLE2", 19736, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE2LOADBINS = Field.create("SCRIPTTABLE2LOADBINS", 19800, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE2RPMBINS = Field.create("SCRIPTTABLE2RPMBINS", 19816, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE3 = Field.create("SCRIPTTABLE3", 19832, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE3LOADBINS = Field.create("SCRIPTTABLE3LOADBINS", 19896, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE3RPMBINS = Field.create("SCRIPTTABLE3RPMBINS", 19912, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE4 = Field.create("SCRIPTTABLE4", 19928, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE4LOADBINS = Field.create("SCRIPTTABLE4LOADBINS", 19992, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SCRIPTTABLE4RPMBINS = Field.create("SCRIPTTABLE4RPMBINS", 20008, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNTRIMLOADBINS = Field.create("IGNTRIMLOADBINS", 20024, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNTRIMRPMBINS = Field.create("IGNTRIMRPMBINS", 20032, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNTRIMS1_TABLE = Field.create("IGNTRIMS1_TABLE", 20040, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS2_TABLE = Field.create("IGNTRIMS2_TABLE", 20056, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS3_TABLE = Field.create("IGNTRIMS3_TABLE", 20072, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS4_TABLE = Field.create("IGNTRIMS4_TABLE", 20088, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS5_TABLE = Field.create("IGNTRIMS5_TABLE", 20104, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS6_TABLE = Field.create("IGNTRIMS6_TABLE", 20120, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS7_TABLE = Field.create("IGNTRIMS7_TABLE", 20136, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS8_TABLE = Field.create("IGNTRIMS8_TABLE", 20152, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS9_TABLE = Field.create("IGNTRIMS9_TABLE", 20168, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS10_TABLE = Field.create("IGNTRIMS10_TABLE", 20184, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS11_TABLE = Field.create("IGNTRIMS11_TABLE", 20200, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field IGNTRIMS12_TABLE = Field.create("IGNTRIMS12_TABLE", 20216, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMLOADBINS = Field.create("FUELTRIMLOADBINS", 20232, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field FUELTRIMRPMBINS = Field.create("FUELTRIMRPMBINS", 20240, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field FUELTRIMS1_TABLE = Field.create("FUELTRIMS1_TABLE", 20248, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS2_TABLE = Field.create("FUELTRIMS2_TABLE", 20264, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS3_TABLE = Field.create("FUELTRIMS3_TABLE", 20280, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS4_TABLE = Field.create("FUELTRIMS4_TABLE", 20296, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS5_TABLE = Field.create("FUELTRIMS5_TABLE", 20312, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS6_TABLE = Field.create("FUELTRIMS6_TABLE", 20328, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS7_TABLE = Field.create("FUELTRIMS7_TABLE", 20344, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS8_TABLE = Field.create("FUELTRIMS8_TABLE", 20360, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS9_TABLE = Field.create("FUELTRIMS9_TABLE", 20376, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS10_TABLE = Field.create("FUELTRIMS10_TABLE", 20392, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS11_TABLE = Field.create("FUELTRIMS11_TABLE", 20408, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field FUELTRIMS12_TABLE = Field.create("FUELTRIMS12_TABLE", 20424, FieldType.INT8).setScale(0.2).setBaseOffset(0); + public static final Field CRANKINGFUELCOEFE100 = Field.create("CRANKINGFUELCOEFE100", 20440, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field TCU_PCAIRMASSBINS = Field.create("TCU_PCAIRMASSBINS", 20456, FieldType.INT8).setScale(0.02).setBaseOffset(0); + public static final Field TCU_PCVALSR = Field.create("TCU_PCVALSR", 20464, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALSN = Field.create("TCU_PCVALSN", 20472, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS1 = Field.create("TCU_PCVALS1", 20480, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS2 = Field.create("TCU_PCVALS2", 20488, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS3 = Field.create("TCU_PCVALS3", 20496, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS4 = Field.create("TCU_PCVALS4", 20504, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS12 = Field.create("TCU_PCVALS12", 20512, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS23 = Field.create("TCU_PCVALS23", 20520, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS34 = Field.create("TCU_PCVALS34", 20528, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS21 = Field.create("TCU_PCVALS21", 20536, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS32 = Field.create("TCU_PCVALS32", 20544, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_PCVALS43 = Field.create("TCU_PCVALS43", 20552, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCCTPSBINS = Field.create("TCU_TCCTPSBINS", 20560, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCCLOCKSPEED = Field.create("TCU_TCCLOCKSPEED", 20568, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_TCCUNLOCKSPEED = Field.create("TCU_TCCUNLOCKSPEED", 20576, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_32SPEEDBINS = Field.create("TCU_32SPEEDBINS", 20584, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TCU_32VALS = Field.create("TCU_32VALS", 20592, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLE2TRIMTABLE = Field.create("THROTTLE2TRIMTABLE", 20600, FieldType.INT8).setScale(0.1).setBaseOffset(0); + public static final Field THROTTLE2TRIMTPSBINS = Field.create("THROTTLE2TRIMTPSBINS", 20636, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field THROTTLE2TRIMRPMBINS = Field.create("THROTTLE2TRIMRPMBINS", 20642, FieldType.INT8).setScale(100.0).setBaseOffset(0); + public static final Field MAXKNOCKRETARDTABLE = Field.create("MAXKNOCKRETARDTABLE", 20648, FieldType.INT8).setScale(0.25).setBaseOffset(0); + public static final Field MAXKNOCKRETARDLOADBINS = Field.create("MAXKNOCKRETARDLOADBINS", 20684, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAXKNOCKRETARDRPMBINS = Field.create("MAXKNOCKRETARDRPMBINS", 20690, FieldType.INT8).setScale(100.0).setBaseOffset(0); + public static final Field ALSTIMINGRETARDTABLE = Field.create("ALSTIMINGRETARDTABLE", 20696, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field ALSIGNRETARDLOADBINS = Field.create("ALSIGNRETARDLOADBINS", 20728, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALSIGNRETARDRPMBINS = Field.create("ALSIGNRETARDRPMBINS", 20736, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALSFUELADJUSTMENT = Field.create("ALSFUELADJUSTMENT", 20744, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field ALSFUELADJUSTMENTLOADBINS = Field.create("ALSFUELADJUSTMENTLOADBINS", 20776, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALSFUELADJUSTMENTRPMBINS = Field.create("ALSFUELADJUSTMENTRPMBINS", 20784, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS1_TABLE = Field.create("IGNBLENDS1_TABLE", 20792, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS1_LOADBINS = Field.create("IGNBLENDS1_LOADBINS", 20920, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS1_RPMBINS = Field.create("IGNBLENDS1_RPMBINS", 20936, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS1_BLENDPARAMETER = Field.create("IGNBLENDS1_BLENDPARAMETER", 20952, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS1_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS1_ALIGNMENTFILL_AT_161", 20953, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS1_BLENDBINS = Field.create("IGNBLENDS1_BLENDBINS", 20954, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS1_BLENDVALUES = Field.create("IGNBLENDS1_BLENDVALUES", 20970, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field IGNBLENDS1_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS1_ALIGNMENTFILL_AT_186", 20978, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS2_TABLE = Field.create("IGNBLENDS2_TABLE", 20980, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS2_LOADBINS = Field.create("IGNBLENDS2_LOADBINS", 21108, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS2_RPMBINS = Field.create("IGNBLENDS2_RPMBINS", 21124, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS2_BLENDPARAMETER = Field.create("IGNBLENDS2_BLENDPARAMETER", 21140, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS2_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS2_ALIGNMENTFILL_AT_161", 21141, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS2_BLENDBINS = Field.create("IGNBLENDS2_BLENDBINS", 21142, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS2_BLENDVALUES = Field.create("IGNBLENDS2_BLENDVALUES", 21158, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field IGNBLENDS2_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS2_ALIGNMENTFILL_AT_186", 21166, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS3_TABLE = Field.create("IGNBLENDS3_TABLE", 21168, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS3_LOADBINS = Field.create("IGNBLENDS3_LOADBINS", 21296, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS3_RPMBINS = Field.create("IGNBLENDS3_RPMBINS", 21312, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS3_BLENDPARAMETER = Field.create("IGNBLENDS3_BLENDPARAMETER", 21328, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS3_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS3_ALIGNMENTFILL_AT_161", 21329, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS3_BLENDBINS = Field.create("IGNBLENDS3_BLENDBINS", 21330, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS3_BLENDVALUES = Field.create("IGNBLENDS3_BLENDVALUES", 21346, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field IGNBLENDS3_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS3_ALIGNMENTFILL_AT_186", 21354, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS4_TABLE = Field.create("IGNBLENDS4_TABLE", 21356, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS4_LOADBINS = Field.create("IGNBLENDS4_LOADBINS", 21484, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS4_RPMBINS = Field.create("IGNBLENDS4_RPMBINS", 21500, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS4_BLENDPARAMETER = Field.create("IGNBLENDS4_BLENDPARAMETER", 21516, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS4_ALIGNMENTFILL_AT_161 = Field.create("IGNBLENDS4_ALIGNMENTFILL_AT_161", 21517, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field IGNBLENDS4_BLENDBINS = Field.create("IGNBLENDS4_BLENDBINS", 21518, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field IGNBLENDS4_BLENDVALUES = Field.create("IGNBLENDS4_BLENDVALUES", 21534, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field IGNBLENDS4_ALIGNMENTFILL_AT_186 = Field.create("IGNBLENDS4_ALIGNMENTFILL_AT_186", 21542, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS1_TABLE = Field.create("VEBLENDS1_TABLE", 21544, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS1_LOADBINS = Field.create("VEBLENDS1_LOADBINS", 21672, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS1_RPMBINS = Field.create("VEBLENDS1_RPMBINS", 21688, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS1_BLENDPARAMETER = Field.create("VEBLENDS1_BLENDPARAMETER", 21704, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS1_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS1_ALIGNMENTFILL_AT_161", 21705, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS1_BLENDBINS = Field.create("VEBLENDS1_BLENDBINS", 21706, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS1_BLENDVALUES = Field.create("VEBLENDS1_BLENDVALUES", 21722, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field VEBLENDS1_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS1_ALIGNMENTFILL_AT_186", 21730, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS2_TABLE = Field.create("VEBLENDS2_TABLE", 21732, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS2_LOADBINS = Field.create("VEBLENDS2_LOADBINS", 21860, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS2_RPMBINS = Field.create("VEBLENDS2_RPMBINS", 21876, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS2_BLENDPARAMETER = Field.create("VEBLENDS2_BLENDPARAMETER", 21892, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS2_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS2_ALIGNMENTFILL_AT_161", 21893, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS2_BLENDBINS = Field.create("VEBLENDS2_BLENDBINS", 21894, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS2_BLENDVALUES = Field.create("VEBLENDS2_BLENDVALUES", 21910, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field VEBLENDS2_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS2_ALIGNMENTFILL_AT_186", 21918, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS3_TABLE = Field.create("VEBLENDS3_TABLE", 21920, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS3_LOADBINS = Field.create("VEBLENDS3_LOADBINS", 22048, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS3_RPMBINS = Field.create("VEBLENDS3_RPMBINS", 22064, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS3_BLENDPARAMETER = Field.create("VEBLENDS3_BLENDPARAMETER", 22080, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS3_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS3_ALIGNMENTFILL_AT_161", 22081, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS3_BLENDBINS = Field.create("VEBLENDS3_BLENDBINS", 22082, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS3_BLENDVALUES = Field.create("VEBLENDS3_BLENDVALUES", 22098, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field VEBLENDS3_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS3_ALIGNMENTFILL_AT_186", 22106, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS4_TABLE = Field.create("VEBLENDS4_TABLE", 22108, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS4_LOADBINS = Field.create("VEBLENDS4_LOADBINS", 22236, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS4_RPMBINS = Field.create("VEBLENDS4_RPMBINS", 22252, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS4_BLENDPARAMETER = Field.create("VEBLENDS4_BLENDPARAMETER", 22268, FieldType.INT8, gppwm_channel_e).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS4_ALIGNMENTFILL_AT_161 = Field.create("VEBLENDS4_ALIGNMENTFILL_AT_161", 22269, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VEBLENDS4_BLENDBINS = Field.create("VEBLENDS4_BLENDBINS", 22270, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field VEBLENDS4_BLENDVALUES = Field.create("VEBLENDS4_BLENDVALUES", 22286, FieldType.INT8).setScale(0.5).setBaseOffset(0); + public static final Field VEBLENDS4_ALIGNMENTFILL_AT_186 = Field.create("VEBLENDS4_ALIGNMENTFILL_AT_186", 22294, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field[] VALUES = { ENGINETYPE, SENSORSNIFFERRPMTHRESHOLD, @@ -2763,14 +2701,9 @@ public class Fields { DISABLEFAN1WHENSTOPPED, DISABLEFAN2WHENSTOPPED, ENABLETRAILINGSPARKS, - ISCJ125VERBOSE, - CJ125ISUADIVIDED, - CJ125ISLSU49, ETB_USE_TWO_WIRES, ISDOUBLESOLENOIDIDLE, USEEEPROM, - CJ125ISURDIVIDED, - USECICPIDFORIDLE, USETLE8888_CRANKING_HACK, KICKSTARTCRANKING, USESEPARATEIDLETABLESFORCRANKINGTAPER, @@ -2823,7 +2756,6 @@ public class Fields { IAT_ADCCHANNEL, IAT_ALIGNMENTFILL_AT_29, LAUNCHTIMINGRETARD, - HIP9011PRESCALERANDSDO, KNOCKBANDCUSTOM, DISPLACEMENT, CYLINDERSCOUNT, @@ -2838,15 +2770,15 @@ public class Fields { BOOSTCONTROLMINRPM, BOOSTCONTROLMINTPS, BOOSTCONTROLMINMAP, - ALIGNMENTFILL_AT_390, + ALIGNMENTFILL_AT_386, CRANKINGTIMINGANGLE, IGNITIONMODE, GAPTRACKINGLENGTHOVERRIDE, MAXIDLEVSS, - ALIGNMENTFILL_AT_399, + ALIGNMENTFILL_AT_395, MINOILPRESSUREAFTERSTART, TIMINGMODE, - ALIGNMENTFILL_AT_403, + ALIGNMENTFILL_AT_399, FIXEDMODETIMING, GLOBALTRIGGERANGLEOFFSET, ANALOGINPUTDIVIDERCOEFFICIENT, @@ -2855,13 +2787,11 @@ public class Fields { FANOFFTEMPERATURE, DRIVEWHEELREVPERKM, CANNBCTYPE, - ALIGNMENTFILL_AT_433, + ALIGNMENTFILL_AT_429, CANSLEEPPERIODMS, - DISPLAYMODE, - ALIGNMENTFILL_AT_441, + UNUSED440, + ALIGNMENTFILL_AT_437, BYFIRMWAREVERSION, - HD44780WIDTH, - HD44780HEIGHT, TPS1_1ADCCHANNEL, VBATTADCCHANNEL, FUELLEVELSENSOR, @@ -2872,10 +2802,10 @@ public class Fields { TRIGGER_CUSTOMTOTALTOOTHCOUNT, TRIGGER_CUSTOMSKIPPEDTOOTHCOUNT, AIRBYRPMTAPER, - HIP9011SPIDEVICE, FAILEDMAPFALLBACK, BOOSTCONTROLSAFEDUTYCYCLE, MAFADCCHANNEL, + ALIGNMENTFILL_AT_475, GLOBALFUELCORRECTION, ADCVCC, MAPCAMDETECTIONANGLEPOSITION, @@ -2891,10 +2821,10 @@ public class Fields { AFR_V2, AFR_VALUE2, THROTTLEPEDALPOSITIONADCCHANNEL, - ALIGNMENTFILL_AT_529, + ALIGNMENTFILL_AT_517, TLE6240_CS, TLE6240_CSPINMODE, - ALIGNMENTFILL_AT_533, + ALIGNMENTFILL_AT_521, THROTTLEPEDALUPPIN, BAROSENSOR_LOWVALUE, BAROSENSOR_HIGHVALUE, @@ -2914,9 +2844,9 @@ public class Fields { VSSFILTERRECIPROCAL, VSSGEARRATIO, VSSTOOTHCOUNT, - ALIGNMENTFILL_AT_571, + ALIGNMENTFILL_AT_559, L9779_CS, - ALIGNMENTFILL_AT_574, + ALIGNMENTFILL_AT_562, TRIGGERSIMULATORFREQUENCY, INJECTIONPINS1, INJECTIONPINS2, @@ -2944,17 +2874,9 @@ public class Fields { IGNITIONPINS12, INJECTIONPINMODE, IGNITIONPINMODE, - HD44780_RS, - HD44780_E, - HD44780_DB4, - HD44780_DB5, - HD44780_DB6, - HD44780_DB7, - GPS_RX_PIN, - GPS_TX_PIN, FUELPUMPPIN, FUELPUMPPINMODE, - ALIGNMENTFILL_AT_649, + ALIGNMENTFILL_AT_621, MALFUNCTIONINDICATORPIN, MALFUNCTIONINDICATORPINMODE, FANPINMODE, @@ -2963,19 +2885,9 @@ public class Fields { ALTERNATORCONTROLPIN, ALTERNATORCONTROLPINMODE, CLUTCHDOWNPINMODE, - DIGITALPOTENTIOMETERCHIPSELECT1, - DIGITALPOTENTIOMETERCHIPSELECT2, - DIGITALPOTENTIOMETERCHIPSELECT3, - DIGITALPOTENTIOMETERCHIPSELECT4, ELECTRONICTHROTTLEPIN1MODE, - ALIGNMENTFILL_AT_671, - WBOHEATERPIN, - CJ125CSPIN, MAX31855SPIDEVICE, - ALIGNMENTFILL_AT_677, DEBUGTRIGGERSYNC, - DIGITALPOTENTIOMETERSPIDEVICE, - ALIGNMENTFILL_AT_681, MC33972_CS, MC33972_CSPINMODE, AUXFASTSENSOR1_ADCCHANNEL, @@ -2984,16 +2896,14 @@ public class Fields { THROTTLEPEDALPOSITIONSECONDADCCHANNEL, FUELLEVELVALUES, AFR_TYPE, - ALIGNMENTFILL_AT_698, + ALIGNMENTFILL_AT_654, IDLE_ANTIWINDUPFREQ, TRIGGERINPUTPINS1, TRIGGERINPUTPINS2, MC33_T_MIN_BOOST, - HIP9011CSPINMODE, - ALIGNMENTFILL_AT_711, TACHOUTPUTPIN, TACHOUTPUTPINMODE, - ALIGNMENTFILL_AT_715, + ALIGNMENTFILL_AT_669, MAINRELAYPIN, SDCARDCSPIN, CANTXPIN, @@ -3003,11 +2913,10 @@ public class Fields { FINALGEARRATIO, TCUINPUTSPEEDSENSORPIN, TCUINPUTSPEEDSENSORTEETH, - ALIGNMENTFILL_AT_731, + ALIGNMENTFILL_AT_685, WASTEGATEPOSITIONMIN, WASTEGATEPOSITIONMAX, - IDLEPOSITIONMIN, - IDLEPOSITIONMAX, + ALIGNMENTFILL_AT_690, TUNERSTUDIOSERIALSPEED, COMPRESSIONRATIO, TRIGGERSIMULATORPINS1, @@ -3016,27 +2925,23 @@ public class Fields { TRIGGERSIMULATORPINMODES1, TRIGGERSIMULATORPINMODES2, MAF2ADCCHANNEL, - ALIGNMENTFILL_AT_757, + ALIGNMENTFILL_AT_709, O2HEATERPIN, O2HEATERPINMODETODO, - ALIGNMENTFILL_AT_761, + ALIGNMENTFILL_AT_713, IS_ENABLED_SPI_1, IS_ENABLED_SPI_2, IS_ENABLED_SPI_3, ISSDCARDENABLED, RUSEFIVERBOSE29B, ISENGINECONTROLENABLED, - ISHIP9011ENABLED, ISVERBOSEALTERNATOR, VERBOSEQUAD, USESTEPPERIDLE, ENABLEDSTEP1LIMITER, - USETPICADVANCEDMODE, - USELCDSCREEN, VERBOSETLE8888, ENABLEVERBOSECANTX, ETB1CONFIGURED, - ISCJ125ENABLED, ETB2CONFIGURED, MEASUREMAPONLYINONECYLINDER, STEPPERFORCEPARKINGEVERYRESTART, @@ -3049,18 +2954,13 @@ public class Fields { IS_ENABLED_SPI_4, PAUSEETBCONTROL, ALIGNENGINESNIFFERATTDC, - IDLEINCREMENTALPIDCIC, ENABLEAEMXSERIES, LOGICANALYZERPINS1, LOGICANALYZERPINS2, LOGICANALYZERPINS3, LOGICANALYZERPINS4, MAINRELAYPINMODE, - ALIGNMENTFILL_AT_777, - HIP9011CSPIN, - HIP9011INTHOLDPIN, - HIP9011INTHOLDPINMODE, - ALIGNMENTFILL_AT_783, + ALIGNMENTFILL_AT_729, VERBOSECANBASEADDRESS, MC33_HVOLT, MINIMUMBOOSTCLOSEDLOOPMAP, @@ -3070,7 +2970,7 @@ public class Fields { DWELLVOLTAGECORRVOLTBINS, IMUTYPE, DWELLVOLTAGECORRVALUES, - ALIGNMENTFILL_AT_811, + ALIGNMENTFILL_AT_759, VEHICLEWEIGHT, IDLEPIDRPMUPPERLIMIT, APPLYNONLINEARBELOWPULSE, @@ -3095,15 +2995,12 @@ public class Fields { STOICHRATIOSECONDARY, ETBMAXIMUMPOSITION, SDCARDLOGFREQUENCY, - IDLEPOSITIONSENSOR, - ALIGNMENTFILL_AT_855, DEBUGMAPAVERAGING, STARTERRELAYDISABLEPIN, STARTERRELAYDISABLEPINMODE, - ALIGNMENTFILL_AT_861, + ALIGNMENTFILL_AT_807, SECONDSOLENOIDPIN, STARTSTOPBUTTONPIN, - ALIGNMENTFILL_AT_866, MAPMINBUFFERLENGTH, IDLEPIDDEACTIVATIONTPSTHRESHOLD, STEPPERPARKINGEXTRASTEPS, @@ -3113,10 +3010,10 @@ public class Fields { STARTCRANKINGDURATION, TRIGGERERRORPIN, TRIGGERERRORPINMODE, - ALIGNMENTFILL_AT_887, + ALIGNMENTFILL_AT_831, ACRELAYPIN, ACRELAYPINMODE, - ALIGNMENTFILL_AT_891, + ALIGNMENTFILL_AT_835, SCRIPTSETTING1, SCRIPTSETTING2, SCRIPTSETTING3, @@ -3134,23 +3031,15 @@ public class Fields { SPI3MOSIPIN, SPI3MISOPIN, SPI3SCKPIN, - CDMINPUTPIN, - JOYSTICKCENTERPIN, - JOYSTICKAPIN, - JOYSTICKBPIN, - JOYSTICKCPIN, - JOYSTICKDPIN, CONSOLEUARTDEVICE, SENSORCHARTMODE, MAFSENSORTYPE, - ALIGNMENTFILL_AT_957, + ALIGNMENTFILL_AT_889, CLUTCHUPPININVERTED, CLUTCHDOWNPININVERTED, USEHBRIDGESTODRIVEIDLESTEPPER, MULTISPARKENABLE, ENABLELAUNCHRETARD, - UNFINISHEDENABLELAUNCHBOOST, - UNFINISHEDLAUNCHDISABLEBYSPEED, ENABLECANVSS, ENABLEINNOVATELC2, SHOWHUMANREADABLEWARNING, @@ -3186,7 +3075,7 @@ public class Fields { ETBIO2_DISABLEPIN, BOOSTCONTROLPIN, BOOSTCONTROLPINMODE, - ALIGNMENTFILL_AT_983, + ALIGNMENTFILL_AT_915, ALSACTIVATEPIN, LAUNCHACTIVATEPIN, BOOSTPID_PFACTOR, @@ -3197,11 +3086,11 @@ public class Fields { BOOSTPID_MINVALUE, BOOSTPID_MAXVALUE, BOOSTTYPE, - ALIGNMENTFILL_AT_1009, + ALIGNMENTFILL_AT_941, BOOSTPWMFREQUENCY, LAUNCHACTIVATIONMODE, ANTILAGACTIVATIONMODE, - ALIGNMENTFILL_AT_1018, + ALIGNMENTFILL_AT_950, LAUNCHSPEEDTHRESHOLD, LAUNCHTIMINGRPMRANGE, LAUNCHFUELADDED, @@ -3250,10 +3139,10 @@ public class Fields { ETBFUNCTIONS1, ETBFUNCTIONS2, DRV8860SPIDEVICE, - ALIGNMENTFILL_AT_1203, + ALIGNMENTFILL_AT_1135, DRV8860_CS, DRV8860_CSPINMODE, - ALIGNMENTFILL_AT_1207, + ALIGNMENTFILL_AT_1139, DRV8860_MISO, FUELLEVELBINS, LUAOUTPUTPINS1, @@ -3264,7 +3153,7 @@ public class Fields { LUAOUTPUTPINS6, LUAOUTPUTPINS7, LUAOUTPUTPINS8, - ALIGNMENTFILL_AT_1242, + ALIGNMENTFILL_AT_1174, VVTOFFSETS1, VVTOFFSETS2, VVTOFFSETS3, @@ -3316,12 +3205,12 @@ public class Fields { TWOSTROKE, SKIPPEDWHEELONCAM, HIPOUTPUTCHANNEL, - ALIGNMENTFILL_AT_1365, + ALIGNMENTFILL_AT_1297, ACSWITCH, VREFADCCHANNEL, ETBNEUTRALPOSITION, IDLEMODE, - ALIGNMENTFILL_AT_1371, + ALIGNMENTFILL_AT_1303, ISINJECTIONENABLED, ISIGNITIONENABLED, ISCYLINDERCLEANUPENABLED, @@ -3391,10 +3280,10 @@ public class Fields { TPS2MAX, STARTERCONTROLPIN, STARTSTOPBUTTONMODE, - ALIGNMENTFILL_AT_1483, + ALIGNMENTFILL_AT_1415, MC33816_FLAG0, TACHPULSEPERREV, - ALIGNMENTFILL_AT_1487, + ALIGNMENTFILL_AT_1419, MAPERRORDETECTIONTOOLOW, MAPERRORDETECTIONTOOHIGH, MULTISPARKSPARKDURATION, @@ -3436,13 +3325,13 @@ public class Fields { AUXSPEEDSENSORINPUTPIN2, TOTALGEARSCOUNT, INJECTIONTIMINGMODE, - ALIGNMENTFILL_AT_1586, + ALIGNMENTFILL_AT_1518, UARTCONSOLESERIALSPEED, TPSDECELENLEANMENTTHRESHOLD, TPSDECELENLEANMENTMULTIPLIER, SLOWADCALPHA, DEBUGMODE, - ALIGNMENTFILL_AT_1605, + ALIGNMENTFILL_AT_1537, AUXSERIALSPEED, THROTTLEPEDALSECONDARYUPVOLTAGE, THROTTLEPEDALSECONDARYWOTVOLTAGE, @@ -3470,7 +3359,7 @@ public class Fields { INJECTORPRESSURETYPE, HPFPVALVEPIN, HPFPVALVEPINMODE, - ALIGNMENTFILL_AT_1647, + ALIGNMENTFILL_AT_1579, BOOSTCUTPRESSURE, TCHARGEBINS, TCHARGEVALUES, @@ -3482,10 +3371,8 @@ public class Fields { VVTPINS2, VVTPINS3, VVTPINS4, - CJ125SPIDEVICE, - CJ125CSPINMODE, SDCARDCSPINMODE, - ALIGNMENTFILL_AT_1711, + ALIGNMENTFILL_AT_1641, CRANKINGIACPOSITION, TCHARGEMINRPMMINTPS, TCHARGEMINRPMMAXTPS, @@ -3494,7 +3381,7 @@ public class Fields { VVTOUTPUTFREQUENCY1, VVTOUTPUTFREQUENCY2, FAN1EXTRAIDLE, - ALIGNMENTFILL_AT_1737, + ALIGNMENTFILL_AT_1669, ALTERNATORPWMFREQUENCY, VVTMODE1, VVTMODE2, @@ -3584,10 +3471,8 @@ public class Fields { MC33816_RSTB, MC33816_DRIVEN, BRAKEPEDALPIN, - CJ125UA, - CJ125UR, BRAKEPEDALPINMODE, - ALIGNMENTFILL_AT_1959, + ALIGNMENTFILL_AT_1889, AUXPID1_PFACTOR, AUXPID1_IFACTOR, AUXPID1_DFACTOR, @@ -3618,16 +3503,16 @@ public class Fields { OILPRESSURE_V2, OILPRESSURE_VALUE2, ACCELEROMETERSPIDEVICE, - ALIGNMENTFILL_AT_2061, + ALIGNMENTFILL_AT_1993, FAN2PIN, FAN2ONTEMPERATURE, FAN2OFFTEMPERATURE, STEPPERENABLEPIN, TLE8888_CS, TLE8888_CSPINMODE, - ALIGNMENTFILL_AT_2071, + ALIGNMENTFILL_AT_2003, MC33816_CS, - ALIGNMENTFILL_AT_2074, + ALIGNMENTFILL_AT_2006, AUXFREQUENCYFILTER, VVTCONTROLMINRPM, SENTINPUTPINS1, @@ -3679,10 +3564,10 @@ public class Fields { TCHARGEAIRINCRLIMIT, TCHARGEAIRDECRLIMIT, TCHARGEMODE, - ALIGNMENTFILL_AT_2465, - HIP9011GAIN, + ALIGNMENTFILL_AT_2397, ETB_ITERMMIN, ETB_ITERMMAX, + ALIGNMENTFILL_AT_2402, IDLETIMINGPID_PFACTOR, IDLETIMINGPID_IFACTOR, IDLETIMINGPID_DFACTOR, @@ -3725,7 +3610,7 @@ public class Fields { IDLERPMPID2_MINVALUE, IDLERPMPID2_MAXVALUE, CANVSSNBCTYPE, - ALIGNMENTFILL_AT_2561, + ALIGNMENTFILL_AT_2489, GPPWM1_PIN, GPPWM1_DUTYIFERROR, GPPWM1_ALIGNMENTFILL_AT_3, @@ -3793,7 +3678,7 @@ public class Fields { TCU_SOLENOID_MODE5, TCU_SOLENOID_MODE6, KNOCKBASENOISE, - ALIGNMENTFILL_AT_3039, + ALIGNMENTFILL_AT_2967, TRIGGERGAPOVERRIDEFROM1, TRIGGERGAPOVERRIDEFROM2, TRIGGERGAPOVERRIDEFROM3, @@ -3833,7 +3718,7 @@ public class Fields { MAXCAMPHASERESOLVERPM, DFCODELAY, ACDELAY, - ALIGNMENTFILL_AT_3187, + ALIGNMENTFILL_AT_3115, FORDINJECTORSMALLPULSEBREAKPOINT, TPSTSPCORRVALUES, ETBJAMINTEGRATORLIMIT, @@ -3841,7 +3726,7 @@ public class Fields { HPFPCAM, HPFPPEAKPOS, HPFPMINANGLE, - ALIGNMENTFILL_AT_3199, + ALIGNMENTFILL_AT_3127, HPFPPUMPVOLUME, HPFPACTIVATIONANGLE, ISSFILTERRECIPROCAL, @@ -3882,7 +3767,7 @@ public class Fields { TORQUELOADBINS, GEARCONTROLLERMODE, TRANSMISSIONCONTROLLERMODE, - ALIGNMENTFILL_AT_3762, + ALIGNMENTFILL_AT_3690, AUXLINEAR1_HWCHANNEL, AUXLINEAR1_ALIGNMENTFILL_AT_1, AUXLINEAR1_V1, @@ -3897,24 +3782,24 @@ public class Fields { AUXLINEAR2_VALUE2, TCU_TCC_ONOFF_SOLENOID, TCU_TCC_ONOFF_SOLENOID_MODE, - ALIGNMENTFILL_AT_3807, + ALIGNMENTFILL_AT_3735, TCU_TCC_PWM_SOLENOID, TCU_TCC_PWM_SOLENOID_MODE, - ALIGNMENTFILL_AT_3811, + ALIGNMENTFILL_AT_3739, TCU_TCC_PWM_SOLENOID_FREQ, TCU_PC_SOLENOID_PIN, TCU_PC_SOLENOID_PIN_MODE, - ALIGNMENTFILL_AT_3817, + ALIGNMENTFILL_AT_3745, TCU_PC_SOLENOID_FREQ, TCU_32_SOLENOID_PIN, TCU_32_SOLENOID_PIN_MODE, - ALIGNMENTFILL_AT_3823, + ALIGNMENTFILL_AT_3751, TCU_32_SOLENOID_FREQ, - ALIGNMENTFILL_AT_3826, + ALIGNMENTFILL_AT_3754, ETBMINIMUMPOSITION, TUNEHIDINGKEY, VINNUMBER, - ALIGNMENTFILL_AT_3851, + ALIGNMENTFILL_AT_3779, HIGHSPEEDOFFSETS, ETBDUTYSHUTDOWNTHRESHOLD, LUADIGITALINPUTPINS1, @@ -3937,7 +3822,7 @@ public class Fields { INSTANTRPMRANGE, UNUSEDA11LIGNMENTFILL_AT_33, SENTETBTYPE, - ALIGNMENTFILL_AT_3954, + ALIGNMENTFILL_AT_3882, ALSIDLEADD, ALSETBADD, ALSSKIPRATIO, @@ -3982,8 +3867,6 @@ public class Fields { BAROCORRTABLE, CRANKINGTPSCOEF, CRANKINGTPSBINS, - NARROWTOWIDEOXYGENBINS, - NARROWTOWIDEOXYGEN, CRANKINGADVANCEBINS, CRANKINGADVANCE, IACCOASTINGRPMBINS, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/FuelComputer.java b/java_console/models/src/main/java/com/rusefi/config/generated/FuelComputer.java index 4242ff5d5f..4166f37d77 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/FuelComputer.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/FuelComputer.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/fuel/fuel_computer.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/fuel/fuel_computer.txt Tue Feb 21 11:00:43 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class FuelComputer { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class FuelComputer { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class FuelComputer { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class FuelComputer { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java b/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java index 65462c4211..0f69686b86 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/ignition_state.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/ignition_state.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class IgnitionState { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class IgnitionState { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class IgnitionState { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class IgnitionState { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java b/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java index b984d5f602..2e69dc2c86 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/sensors//sent_state.txt Mon Feb 20 16:39:15 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/sensors//sent_state.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class SentState { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class SentState { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class SentState { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class SentState { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java index ff70ae5959..250ecf8b54 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger/trigger_state.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger/trigger_state.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class TriggerState { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class TriggerState { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class TriggerState { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class TriggerState { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java index 0fb85600fe..6ae2da4a0d 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger/trigger_state_primary.txt Sun Feb 19 03:53:01 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger/trigger_state_primary.txt Tue Feb 21 11:00:44 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class TriggerStatePrimary { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class TriggerStatePrimary { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class TriggerStatePrimary { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class TriggerStatePrimary { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java b/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java index 4b5dad0978..9909084675 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sun Feb 19 03:53:00 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Tue Feb 21 11:00:43 PST 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -78,7 +78,6 @@ public class TsOutputs { public static final int CRANKING_CURVE_SIZE = 8; public static final String CRITICAL_PREFIX = "CRITICAL"; public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; public static final int DWELL_CURVE_SIZE = 8; public static final int EGT_CHANNEL_COUNT = 8; public static final String ENGINE_MAKE_BMW = "BMW"; @@ -98,7 +97,7 @@ public class TsOutputs { public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10020; + public static final int FLASH_DATA_VERSION = 20000; public static final int FUEL_LEVEL_TABLE_COUNT = 8; public static final int FUEL_LOAD_COUNT = 16; public static final int FUEL_RPM_COUNT = 16; @@ -277,7 +276,6 @@ public class TsOutputs { public static final int MLQ_HEADER_SIZE = 24; public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int PACK_ADD_TEMPERATURE = 40; public static final int PACK_MULT_AFR = 1000; public static final int PACK_MULT_AFR_CFG = 10; @@ -302,7 +300,6 @@ public class TsOutputs { public static final String PROTOCOL_ES_DOWN = "d"; public static final String PROTOCOL_ES_UP = "u"; public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; public static final String PROTOCOL_HPFP_NAME = "hpfp"; public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; public static final String PROTOCOL_MSG = "msg"; @@ -423,10 +420,9 @@ public class TsOutputs { public static final Field HASCRITICALERROR = Field.create("HASCRITICALERROR", 0, FieldType.BIT, 19).setBaseOffset(0); public static final Field ISWARNNOW = Field.create("ISWARNNOW", 0, FieldType.BIT, 20).setBaseOffset(0); public static final Field ISPEDALERROR = Field.create("ISPEDALERROR", 0, FieldType.BIT, 21).setBaseOffset(0); - public static final Field ISKNOCKCHIPOK = Field.create("ISKNOCKCHIPOK", 0, FieldType.BIT, 22).setBaseOffset(0); - public static final Field LAUNCHTRIGGERED = Field.create("LAUNCHTRIGGERED", 0, FieldType.BIT, 23).setBaseOffset(0); - public static final Field ISTPS2ERROR = Field.create("ISTPS2ERROR", 0, FieldType.BIT, 24).setBaseOffset(0); - public static final Field ISIDLECLOSEDLOOP = Field.create("ISIDLECLOSEDLOOP", 0, FieldType.BIT, 25).setBaseOffset(0); + public static final Field LAUNCHTRIGGERED = Field.create("LAUNCHTRIGGERED", 0, FieldType.BIT, 22).setBaseOffset(0); + public static final Field ISTPS2ERROR = Field.create("ISTPS2ERROR", 0, FieldType.BIT, 23).setBaseOffset(0); + public static final Field ISIDLECLOSEDLOOP = Field.create("ISIDLECLOSEDLOOP", 0, FieldType.BIT, 24).setBaseOffset(0); public static final Field RPMVALUE = Field.create("RPMVALUE", 4, FieldType.INT16).setScale(1.0).setBaseOffset(0); public static final Field RPMACCELERATION = Field.create("RPMACCELERATION", 6, FieldType.INT16).setScale(1.0).setBaseOffset(0); public static final Field SPEEDTORPMRATIO = Field.create("SPEEDTORPMRATIO", 8, FieldType.INT16).setScale(0.01).setBaseOffset(0); @@ -482,10 +478,10 @@ public class TsOutputs { public static final Field SECONDS = Field.create("SECONDS", 104, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final Field ENGINEMODE = Field.create("ENGINEMODE", 108, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final Field FIRMWAREVERSION = Field.create("FIRMWAREVERSION", 112, FieldType.INT).setScale(1.0).setBaseOffset(0); - public static final Field RAWIDLEPOSITIONSENSOR = Field.create("RAWIDLEPOSITIONSENSOR", 116, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field RAWWASTEGATEPOSITION = Field.create("RAWWASTEGATEPOSITION", 118, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field ACCELERATIONX = Field.create("ACCELERATIONX", 120, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field ACCELERATIONY = Field.create("ACCELERATIONY", 122, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field RAWWASTEGATEPOSITION = Field.create("RAWWASTEGATEPOSITION", 116, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field ACCELERATIONX = Field.create("ACCELERATIONX", 118, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ACCELERATIONY = Field.create("ACCELERATIONY", 120, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_122 = Field.create("ALIGNMENTFILL_AT_122", 122, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field TSCONFIGVERSION = Field.create("TSCONFIGVERSION", 124, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final Field CALIBRATIONVALUE = Field.create("CALIBRATIONVALUE", 128, FieldType.FLOAT).setBaseOffset(0); public static final Field CALIBRATIONMODE = Field.create("CALIBRATIONMODE", 132, FieldType.INT8).setScale(1.0).setBaseOffset(0); @@ -547,45 +543,45 @@ public class TsOutputs { public static final Field TCUDESIREDGEAR = Field.create("TCUDESIREDGEAR", 250, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field FLEXPERCENT = Field.create("FLEXPERCENT", 251, FieldType.INT8).setScale(0.5).setBaseOffset(0); public static final Field WASTEGATEPOSITIONSENSOR = Field.create("WASTEGATEPOSITIONSENSOR", 252, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field IDLEPOSITIONSENSOR = Field.create("IDLEPOSITIONSENSOR", 254, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field RAWLOWFUELPRESSURE = Field.create("RAWLOWFUELPRESSURE", 256, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field RAWHIGHFUELPRESSURE = Field.create("RAWHIGHFUELPRESSURE", 258, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field LOWFUELPRESSURE = Field.create("LOWFUELPRESSURE", 260, FieldType.INT16).setScale(0.03333333333333333).setBaseOffset(0); - public static final Field HIGHFUELPRESSURE = Field.create("HIGHFUELPRESSURE", 262, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field AFRVALUE = Field.create("AFRVALUE", 264, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field VSSACCELERATION = Field.create("VSSACCELERATION", 266, FieldType.INT16).setScale(0.0033333333333333335).setBaseOffset(0); - public static final Field LAMBDAVALUE2 = Field.create("LAMBDAVALUE2", 268, FieldType.INT16).setScale(1.0E-4).setBaseOffset(0); - public static final Field AFRVALUE2 = Field.create("AFRVALUE2", 270, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field VVTPOSITIONB1E = Field.create("VVTPOSITIONB1E", 272, FieldType.INT16).setScale(0.02).setBaseOffset(0); - public static final Field VVTPOSITIONB2I = Field.create("VVTPOSITIONB2I", 274, FieldType.INT16).setScale(0.02).setBaseOffset(0); - public static final Field VVTPOSITIONB2E = Field.create("VVTPOSITIONB2E", 276, FieldType.INT16).setScale(0.02).setBaseOffset(0); - public static final Field FUELPIDCORRECTION1 = Field.create("FUELPIDCORRECTION1", 278, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field FUELPIDCORRECTION2 = Field.create("FUELPIDCORRECTION2", 280, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field RAWTPS1SECONDARY = Field.create("RAWTPS1SECONDARY", 282, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field RAWTPS2PRIMARY = Field.create("RAWTPS2PRIMARY", 284, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field RAWTPS2SECONDARY = Field.create("RAWTPS2SECONDARY", 286, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field KNOCKCOUNT = Field.create("KNOCKCOUNT", 288, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field ACCELERATIONZ = Field.create("ACCELERATIONZ", 290, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field ACCELERATIONROLL = Field.create("ACCELERATIONROLL", 292, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field ACCELERATIONYAW = Field.create("ACCELERATIONYAW", 294, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field VVTTARGETS1 = Field.create("VVTTARGETS1", 296, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VVTTARGETS2 = Field.create("VVTTARGETS2", 297, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VVTTARGETS3 = Field.create("VVTTARGETS3", 298, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field VVTTARGETS4 = Field.create("VVTTARGETS4", 299, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TURBOSPEED = Field.create("TURBOSPEED", 300, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPS1SPLIT = Field.create("TPS1SPLIT", 302, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field TPS2SPLIT = Field.create("TPS2SPLIT", 304, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field TPS12SPLIT = Field.create("TPS12SPLIT", 306, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field ACCPEDALSPLIT = Field.create("ACCPEDALSPLIT", 308, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field SPARKCUTREASON = Field.create("SPARKCUTREASON", 310, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field FUELCUTREASON = Field.create("FUELCUTREASON", 311, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field MAFESTIMATE = Field.create("MAFESTIMATE", 312, FieldType.INT16).setScale(0.1).setBaseOffset(0); - public static final Field INSTANTRPM = Field.create("INSTANTRPM", 314, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field SYSTEMEVENTREUSE = Field.create("SYSTEMEVENTREUSE", 316, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field RAWMAP = Field.create("RAWMAP", 318, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field RAWAFR = Field.create("RAWAFR", 320, FieldType.INT16).setScale(0.001).setBaseOffset(0); - public static final Field TPSACCELFROM = Field.create("TPSACCELFROM", 322, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field TPSACCELTO = Field.create("TPSACCELTO", 323, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field RAWLOWFUELPRESSURE = Field.create("RAWLOWFUELPRESSURE", 254, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field RAWHIGHFUELPRESSURE = Field.create("RAWHIGHFUELPRESSURE", 256, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field LOWFUELPRESSURE = Field.create("LOWFUELPRESSURE", 258, FieldType.INT16).setScale(0.03333333333333333).setBaseOffset(0); + public static final Field HIGHFUELPRESSURE = Field.create("HIGHFUELPRESSURE", 260, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field AFRVALUE = Field.create("AFRVALUE", 262, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field VSSACCELERATION = Field.create("VSSACCELERATION", 264, FieldType.INT16).setScale(0.0033333333333333335).setBaseOffset(0); + public static final Field LAMBDAVALUE2 = Field.create("LAMBDAVALUE2", 266, FieldType.INT16).setScale(1.0E-4).setBaseOffset(0); + public static final Field AFRVALUE2 = Field.create("AFRVALUE2", 268, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field VVTPOSITIONB1E = Field.create("VVTPOSITIONB1E", 270, FieldType.INT16).setScale(0.02).setBaseOffset(0); + public static final Field VVTPOSITIONB2I = Field.create("VVTPOSITIONB2I", 272, FieldType.INT16).setScale(0.02).setBaseOffset(0); + public static final Field VVTPOSITIONB2E = Field.create("VVTPOSITIONB2E", 274, FieldType.INT16).setScale(0.02).setBaseOffset(0); + public static final Field FUELPIDCORRECTION1 = Field.create("FUELPIDCORRECTION1", 276, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field FUELPIDCORRECTION2 = Field.create("FUELPIDCORRECTION2", 278, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field RAWTPS1SECONDARY = Field.create("RAWTPS1SECONDARY", 280, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field RAWTPS2PRIMARY = Field.create("RAWTPS2PRIMARY", 282, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field RAWTPS2SECONDARY = Field.create("RAWTPS2SECONDARY", 284, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field KNOCKCOUNT = Field.create("KNOCKCOUNT", 286, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ACCELERATIONZ = Field.create("ACCELERATIONZ", 288, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ACCELERATIONROLL = Field.create("ACCELERATIONROLL", 290, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ACCELERATIONYAW = Field.create("ACCELERATIONYAW", 292, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field VVTTARGETS1 = Field.create("VVTTARGETS1", 294, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VVTTARGETS2 = Field.create("VVTTARGETS2", 295, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VVTTARGETS3 = Field.create("VVTTARGETS3", 296, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field VVTTARGETS4 = Field.create("VVTTARGETS4", 297, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TURBOSPEED = Field.create("TURBOSPEED", 298, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPS1SPLIT = Field.create("TPS1SPLIT", 300, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field TPS2SPLIT = Field.create("TPS2SPLIT", 302, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field TPS12SPLIT = Field.create("TPS12SPLIT", 304, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ACCPEDALSPLIT = Field.create("ACCPEDALSPLIT", 306, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field SPARKCUTREASON = Field.create("SPARKCUTREASON", 308, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field FUELCUTREASON = Field.create("FUELCUTREASON", 309, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field MAFESTIMATE = Field.create("MAFESTIMATE", 310, FieldType.INT16).setScale(0.1).setBaseOffset(0); + public static final Field INSTANTRPM = Field.create("INSTANTRPM", 312, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field SYSTEMEVENTREUSE = Field.create("SYSTEMEVENTREUSE", 314, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field RAWMAP = Field.create("RAWMAP", 316, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field RAWAFR = Field.create("RAWAFR", 318, FieldType.INT16).setScale(0.001).setBaseOffset(0); + public static final Field TPSACCELFROM = Field.create("TPSACCELFROM", 320, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field TPSACCELTO = Field.create("TPSACCELTO", 321, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_322 = Field.create("ALIGNMENTFILL_AT_322", 322, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field CALIBRATIONVALUE2 = Field.create("CALIBRATIONVALUE2", 324, FieldType.FLOAT).setBaseOffset(0); public static final Field ISMAINRELAYON = Field.create("ISMAINRELAYON", 328, FieldType.BIT, 0).setBaseOffset(0); public static final Field ISUSBCONNECTED = Field.create("ISUSBCONNECTED", 328, FieldType.BIT, 1).setBaseOffset(0); @@ -899,7 +895,6 @@ public class TsOutputs { HASCRITICALERROR, ISWARNNOW, ISPEDALERROR, - ISKNOCKCHIPOK, LAUNCHTRIGGERED, ISTPS2ERROR, ISIDLECLOSEDLOOP, @@ -958,10 +953,10 @@ public class TsOutputs { SECONDS, ENGINEMODE, FIRMWAREVERSION, - RAWIDLEPOSITIONSENSOR, RAWWASTEGATEPOSITION, ACCELERATIONX, ACCELERATIONY, + ALIGNMENTFILL_AT_122, TSCONFIGVERSION, CALIBRATIONVALUE, CALIBRATIONMODE, @@ -1023,7 +1018,6 @@ public class TsOutputs { TCUDESIREDGEAR, FLEXPERCENT, WASTEGATEPOSITIONSENSOR, - IDLEPOSITIONSENSOR, RAWLOWFUELPRESSURE, RAWHIGHFUELPRESSURE, LOWFUELPRESSURE, @@ -1062,6 +1056,7 @@ public class TsOutputs { RAWAFR, TPSACCELFROM, TPSACCELTO, + ALIGNMENTFILL_AT_322, CALIBRATIONVALUE2, ISMAINRELAYON, ISUSBCONNECTED,